1

現在アクティブなアイテムから次のアイテムをクリックしたい。どのliがアクティブで、そのタグにはアクティブなクラスが含まれています。

まず、タグをアクティブにします。これは親の li です。今、私は ul で li のインデックスを取得します。次に、その値に 1 を追加し、次のタグを取得してクリック イベントを発生させます。

私のコードは IE と Firefox では正常に動作していますが、Chrome では次の例外が発生します。

"Uncaught TypeError: Object #<an 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();
4

1 に答える 1

0

To invoke the click handler for a DOM element, IE defines a click method which basically fires the click event . Firefox implemented it from FF 5+.

However Chrome still uses the standard W3C defined dispatchEvent for programatically firing the event.

Or it could also be that the navindex12 object returned could be a DOMTextElement. Try alerting the navindex12.nodeType

To conclude , you should try to gracefully check for browser and element constraints before calling the click method.

于 2012-04-09T15:57:50.703 に答える