1

我想从当前活动项目中单击下一个 li 项目。其中 li 是活动的,它的标签包含活动类。

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

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

“未捕获的类型错误:对象 #<an Object> 没有方法 'click'”

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

我的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();
4

1 回答 1

0

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

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

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

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

于 2012-04-09T15:57:50.703 回答