2012-04-07 77 views
1

我想点击旁边立项目从当前的活动项目。哪个li是活动的,它的标签包含活动类。遗漏的类型错误:对象#<an Object>有没有方法“点击”

所以首先,我得到了一个标签,它是父母李。现在我在ul中获得li的索引。然后在其值中加1,然后获得标签和点击事件。

我的代码是工作在IE和Firefox罚款,但在Chrome中我得到以下异常。

“遗漏的类型错误:对象#有没有方法‘点击’”

请建议我在我的代码可用链接或代码示例或修正。

我的HTML代码是: -

<nav class="cycle-nav-container" role="navigation">   
    <ul class="list-b" id="cycle-1-nav"> 
      <li class="hitmo"><a href="http://hitmo-studio.com/#hitmo">Hitmo</a></li> 
      <li class="fastpr"><a href="#" class="active">FastPr</a></li> 
      <li class="thinkmedia"><a href="http://hitmo-studio.com/#thinkmedia">Thinkmedia</a></li> 
      <li class="arkana"><a href="http://hitmo-studio.com/#arkana">Arkana</a></li> 
      <li class="bioway"><a href="http://hitmo-studio.com/#bioway">Bioway</a></li> 
      <li class="nana"><a href="http://hitmo-studio.com/#nana">Nanaform</a></li> 
      <li class="akademia"><a href="http://hitmo-studio.com/#akademia">Social Media Academy</a></li> 
     </ul> 
    </nav> 

我的Javascript代码是: -

var navIndex = $('.cycle-nav-container .list-b .active').parent(); 
    var nextIndex = $("ul.list-b li").index(navIndex) + 1; 
    var par = $("ul.list-b"); 
    if(nextIndex>=par[0].children.length) 
    nextIndex=0; 
    var nextElement = par[0].children[nextIndex]; 
    var navIndex12 = nextElement.children[0]; 
    navIndex12.click(); 
+1

尝试'$(navIndex12)。点击()'' – dfreeman 2012-04-07 04:14:31

+0

是navIndex12'不是一个jQuery对象,但一个简单的DOM元素,所以它没有一个方法'click' – ZenMaster 2012-04-07 04:15:56

+0

现在的工作,但请给我解释一下为什么它在IE和Firefox上工作或给我详细的解释这个东西的链接。 – 2012-04-07 04:17:57

回答

0

要调用DOM元素单击处理程序,IE限定了基本上将触发点击的点击方法事件。 Firefox从FF 5+实现它。

但是Chrome仍然会用来编程触发事件定义dispatchEvent标准W3C。

或者,它也可能是因为navindex12对象返回可能是一个DOMTextElement。试着提醒navindex12.nodeType

总之,你应该尝试调用点击方法之前摆好检查浏览器和要素制约。

相关问题