【问题标题】:Jquery only working on Chrome?Jquery 只在 Chrome 上工作?
【发布时间】:2012-01-06 04:36:53
【问题描述】:

我从事一个项目已经有一段时间了,但直到现在才在 Firefox 上对其进行测试,并且发现我的 jquery 都不能在 Firefox 上运行。只有铬。谁能告诉我为什么它会这样?是语法错误吗?是不是 jquery 与 firefox 不兼容有关?

$('#dropmenutitle').click(function () {
    event.stopPropagation();
    $('#dropmenu').fadeToggle('fast');
    $('body').click(function () {
        $('#dropmenu').fadeOut('fast');
    });
});

$('#popboxtitle').click(function () {
    event.stopPropagation();
    $('#popboxtop').fadeToggle('fast');
    $('body').click(function () {
        $('#popboxtop').fadeOut('fast');
    });
});

这是我的代码,我使用的是 jquery 1.7.1

【问题讨论】:

  • 如果您能解释问题所在会有所帮助...
  • 我正在尝试制作两个不同的 div,它们被设计为在单击链接(触发器)时弹出的弹出窗口。目前,弹出窗口只能在 chrome 上运行,而不能在 firefox 上运行。单击触发器不会执行任何操作。

标签: jquery firefox


【解决方案1】:

在您的活动中,event 不存在。你需要把它放在参数列表中。

$('#dropmenutitle').click(function (event) {
});

$('#popboxtitle').click(function (event) {
});

【讨论】:

  • 非常感谢!我完全忘记了!下次我使用 jquery 时,我会记住这一点!再次感谢!
  • 我想指出,为什么您的代码在 chrome 上运行,“事件”是 IE 和 Chrome 内部提供的,但无论您是否在参数中定义,它在 Firefox 中都不存在。
【解决方案2】:

我遇到过类似的问题,但在我的情况下,我正在连接键盘事件。我删除了 event 并做了类似的事情

 $(document).keyup(function (e) {
     var keyId = e.keyCode; //This will work for all browser
     keyId = event.keyCode; //This will also work, but only in IE and Chrome 
 });

event 由 IE 和 Chrome 内部提供,但在 Firefox 中不存在。

试试这个。希望这会有所帮助。

【讨论】:

  • 不确定我是否理解。如果您所做的只是将参数名称“event”替换为缩短的“e”,那么您实际上并没有更改任何内容。 ;-) 您可以使用任意名称将事件传递给函数。
  • 可能是我解释的不对。在上面的代码(我的代码)中,我可以通过 e.keyCode 和 event.keyCode 获取 keyCode,即使我没有定义事件。这肯定适用于 IE,因为我刚刚尝试过我自己:)
  • 明白了。是的,这样做的方法是e.keyCode(使用名称“事件”是另一个答案中的建议,但它是一样的)因为事件正在被传递。我实际上并不知道“事件”是全球可用!对我来说新知识。 ;-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-03-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-12
  • 2011-02-12
  • 2012-09-10
  • 1970-01-01
相关资源
最近更新 更多