【问题标题】:Uncaught TypeError: Object #<an Object> has no method 'click'Uncaught TypeError: Object #<an Object> has no method 'click'
【发布时间】:2012-04-20 13:18:45
【问题描述】:

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

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

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

"Uncaught TypeError: Object # has no method '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();

【问题讨论】:

  • navIndex12不是一个jQuery对象,而是一个简单的DOM元素,所以它没有click的方法
  • 现在可以工作了,但请解释一下为什么它可以在 IE 和 Firefox 上工作,或者给我这个东西的详细解释链接。

标签: javascript jquery google-chrome jquery-selectors jquery-events


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-30
    • 1970-01-01
    相关资源
    最近更新 更多