2011-03-28 42 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")在它存在于文档中之前被调用。你可以在文件加载后确认它发生了吗?