2011-03-28 63 views
0

我收到以下錯誤消息:幫助jQuery的加原型

When I called jQuery(...) with your args, an error was thrown! 
TypeError: $("#contest-navigation ul li") is null 

然而,在控制檯中,如果I型:

jQuery("#contest-navigation ul li"); 

我得到一個非空消息(唯一我看到的事情是「你多次使用了相同的選擇器」,這是有意義的,因爲它是一個無序的列表)。

我認爲這實際上是因爲我正在使用jQuery的原型(以及之前的人),但我不確定如何解決此問題。我知道,當我把鏈接到原型庫,我的jQuery代碼正常工作......

HTML:

<div id="contest-navigation"> 
<ul> 
    <li><a><span>About</span</a></li> 
    <li><a><span>Enter</span</a></li> 
    <li><a><span>Rules</span</a></li> 
    <li><a><span>Prizes</span</a></li> 
    <li><a><span>FAQ</span</a></li> 
</ul> 
</div> 

這裏是我的完整代碼(製表rollover.js):

jQuery(function() { 
    jQuery('#contest-navigation ul li').hover(function() { 
     jQuery(this).addClass('hover'); 
    }, function() { 
     jQuery(this).removeClass('hover'); 
    }); 

    jQuery('#contest-navigation ul li').click(function() { 
     jQuery('#parents-subnav ul li').removeClass('selected');   
     jQuery(this).addClass('selected'); 
    }); 

}); 
+0

請發表含有'#contest-navigation'的HTML文件 – Kyle 2011-03-28 18:51:48

+0

這是來自某個程序的分析嗎? jQuery.lint.js? 我相信相同的選擇器消息意味着你已經多次使用$(selector),而不是將它存儲在一個變量中來緩存它。 只要null和非null返回...是第一次嘗試使用選擇器時加載的頁面? $(function(){dowork();}); 當您在控制檯中手動執行頁面時,頁面顯然會加載。 – 2011-03-28 18:53:53

+0

剛發佈一些HTML – redconservatory 2011-03-28 19:13:59

回答

2

確保您的代碼位於ready塊內。

+0

這是一個很好的提示,謝謝! – redconservatory 2011-03-28 19:28:51

1

我能想到的唯一的事情就是$("#contest-navigation ul li")在它存在於文檔中之前被調用。你可以在文件加載後確認它發生了嗎?