未捕获的TypeError:对象#<an object =“”>没有方法'click'</an>

时间:2012-04-07 04:11:22

标签: jquery javascript-events jquery-selectors javascript

我想点击当前活动项目中的下一个li项目。哪个li是活动的,它的标记包含活动类。

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

我的代码在IE和Firefox中运行良好,但在Chrome中我得到以下异常。

“未捕获的TypeError:对象#没有方法'点击'”

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

我的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 个答案:

答案 0 :(得分:0)

为了调用DOM元素的单击处理程序,IE定义了一个基本上触发click事件的click方法。 Firefox从FF 5 +实现了它。

但Chrome仍然使用标准的W3C定义的dispatchEvent以编程方式触发事件。

或者也可能是返回的navindex12对象可能是DOMTextElement。尝试提醒navindex12.nodeType

总之,在调用click方法之前,您应该尝试优雅地检查浏览器和元素约束。