2012-06-22 51 views
3

使用jQuery 1.7.2。測試版本與1.5.1一樣早。同樣的結果。與jQuery的find()不一致的行爲

在FF和IE少於9的情況下,它可以正常返回DOM元素的預期jQuery對象。但是,在其他任何情況下,它都會返回DOM元素的jQuery對象的jQuery對象。這與嘗試獲取寬度或高度的任何東西都有關係,因爲jQuery中的這些函數最終期望傳遞的元素是DOM元素(我做了很多跟蹤)。另外,我從來沒有遇到過這個問題。 This is the site where it all went wrong。如果您想要看到它的實際操作,我還沒有修復上一個和下一個按鈕。它應該在下一個播放列表元素上調用click()。不是因爲這個問題。代碼取MediaElementJS

t.controls = t.container.find('.mejs-controls'); 
t.layers = t.container.find('.mejs-layers'); 

我最終提出了修復方案。

if(!mf.isFirefox && !(/MSIE [876]/.test(navigator.userAgent))){ 
    t.controls = t.container.find('.mejs-controls').get(0); 
    t.layers = t.container.find('.mejs-layers').get(0); 
}else{ 
    t.controls = t.container.find('.mejs-controls'); 
    t.layers = t.container.find('.mejs-layers'); 
} 

現在,爲什麼在上帝的綠色地球上,除了FF以外,它在新的瀏覽器上是壞的?

這裏是行,如果你想建立的斷點:

  • 的jQuery + mep.js(曾經有jQuery的捆綁在了這裏,把它用於測試)
    • 下一篇:4595
    • 以前:4600
  • jQuery的1.7.2.js
    • jQuery.next():5582
    • jQuery.prev():5585
    • jQuery.nth():5666

UPDATE

其他網頁似乎不受影響;像http://www.commercialsonhold.com/messagesamples/aesthetics.htm。我開始認爲頁面上的其他內容與jQuery混淆了。該網站是Joomla!我經常遇到Joomla上的MooTools!但是,通常情況下,jQuery完全不能工作,而不僅僅是一個功能異常的函數。

UPDATE

的的jsfiddle:http://jsfiddle.net/h5ahY/4/

illustration of the jQuery object in a jQuery object

+0

t.container在哪裏被定義?這可以複製一個簡單的jsfiddle嗎? –

+0

線1764't.container = $( '

'+'
'+'
'+'
'+'
'+'
'+'
'+'
')' – Knyri

+0

在撥弄我沒有得到你是同樣的結果獲得。包含包含dom元素的jQuery對象的jQuery對象沒有意義,jQuery會自動清理它。 http://jsfiddle.net/kxz8v/2/正如你所看到的,即使是最後一個我試圖製作一個包含jQuery對象的jQuery對象的單個jQuery對象也包含了dom元素。 –

回答

0

發現的問題。這是MooTools。我不知道如何,我不知道爲什麼。

通過移動jQuery包括上面的MooTools包括和使用jQuery,而不是$無處不在。

現在我知道如何使用它,現在很快就會獲得jsFiddle。