2012-01-06 76 views
0

我一直在一个项目上工作了一段时间,但从未在Firefox上测试过它,直到现在,我发现我的jQuery中没有任何一款适用于Firefox。只有铬。有谁可以告诉我为什么这样做?这是一个语法错误?这与jQuery与Firefox的不兼容性有关吗?Jquery只在Chrome上工作?

$('#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

+0

将帮助,如果你解释了什么问题是... – 2012-01-06 04:39:07

+0

我试图让两个不同的div被设计成当弹出一个链接(触发器)被点击弹出窗口。目前,弹出窗口只能在Chrome上运行,而不能在Firefox上运行。点击触发器不会执行任何操作。 – Ninjiangstar 2012-01-06 04:40:56

回答

4

在你的事件,event不存在。你需要把它放在参数列表中。

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

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

非常感谢你!我完全忘了!下次我使用jquery时,我会记住这一点!再次感谢! – Ninjiangstar 2012-01-06 05:15:03

+1

我想指出的是,为什么你的代码在Chrome上工作,“事件”是由IE和Chrome内部提供的,但它不在Firefox中,无论你是否在参数中定义。 – 2012-01-06 05:46:27

+0

@Ninjiangstar:不客气:-) – 2012-01-06 14:24:54

0

我曾经遇到过类似的问题,但在我的情况下,我是连线关键主板事件。我删除事件,做这样的事情

$(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 
}); 

事件在内部被IE和Chrome提供的,但它不存在于Firefox浏览器。

试试看。希望这可以帮助。

+0

不知道我明白。如果您所做的只是将参数名称“event”替换为缩短的“e”,那么您实际上并未改变任何内容。 ;-)您可以使用任意名称将事件传递给函数。 – 2012-01-06 05:12:59

+0

可能是我没有解释正确。在上面的代码中(我的代码),我可以通过e.keyCode和event.keyCode获取keyCode,即使我没有定义事件。这将为IE浏览器工作,因为我只是尝试了我的自我:) – 2012-01-06 05:20:11

+0

Gotcha。是的,实现它的方法是'e.keyCode'(使用名称“event”是另一个答案中的建议,但它是一样的),因为事件正在传入。事实上我并不知道'event '全球可用!对我来说新的知识。 ;-) – 2012-01-06 15:05:27

相关问题