2014-02-17 153 views
0

我有以下jquery代碼,它可以在Firefox和safari中正常工作,但不在Chrome中。jquery和鉻問題

基本上我只是想下面的代碼運行在頁面加載時:

$("ul#menu-master_menu li ul li a span.sf-sub-indicator:first-child").remove(); 

出於某種原因,我不能得到這個工作,所以我將它設置爲下面的圖像負荷運行:

$(window).load(function() { 
    $("#logoLoader").load(function(){ 
     $("ul#menu-master_menu li ul li a span.sf-sub-indicator:first-child").remove(); 
    }).attr('src', 'http://localhost/wordpress/wp-content/themes/volumes/images/logo.png'); 
}); 

這不適用於chrome。任何人都可以請我提供一個解決方案或解釋爲什麼它不適用於鉻。正如我提到我只是需要這行代碼來運行:

$("ul#menu-master_menu li ul li a span.sf-sub-indicator:first-child").remove(); 

感謝

+0

顯示你的HTML或做出小提琴 –

+1

什麼Chrome瀏覽器版本? – tyler

+1

有沒有原因你不使用'.ready':http://api.jquery.com/ready/? –

回答

0

我要在這裏張貼此,allthough這將是一個註釋。我在這裏寫這個解釋調試在這種情況下,我不能在評論框

你想調試你的選擇器。如果你確定問題在於這一行,你想調試它。大家可以試試,看它是否是選擇,並且下來向下運行復雜:

// In the $(document).ready(); : 
console.log($("ul#menu-master_menu").length); 
console.log($("ul#menu-master_menu").length); 
console.log($("ul#menu-master_menu li").length); 
console.log($("ul#menu-master_menu li ul").length); 
console.log($("ul#menu-master_menu li ul li").length); 
console.log($("ul#menu-master_menu li ul li a").length); 
console.log($("ul#menu-master_menu li ul li a span").length); 
console.log($("ul#menu-master_menu li ul li a span.sf-sub-indicator").length); 
console.log($("ul#menu-master_menu li ul li a span.sf-sub-indicator:first-child").length); 

這應該給你在調試器9的日誌項。如果沒有,找出失敗的地方。
如果它確實工作了所有9行,請將.remove()切換爲.css({background:'pink'})以查看它是否選擇了正確的元素。

0

這條線後,頁面加載完成後

$(window).load(function() { 

這方式如下功能不觸發

觸發事件

$( 「#logoLoader」)。負載(函數(){ });

嘗試改變$(window).load(function() {})到​​

+0

完全取決於上下文。 window.load可以在doc.ready中。也許這個代碼需要在頁面完成加載時觸發:) – Martijn

+0

好的,所以他可以刪除不必要的#logoLoader加載事件,因爲它已經加載 –