2012-01-06 75 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

相關問題