1
<div>                                           
  <h3 class="ft-default bold inline-block">Callback</h3>                                            
     <ul class="Browsingtree02">
     <li><a href="/description.html">LoadCallBack</a></li>
     <li><a>ChangeCallBack</a></li>
     <li><a>beforeJobCallBack</a></li>
     <li><a>afterJobCallBack</a></li>
     <li><a>afterListCallBack</a></li>
     <li><a>afterReadCallBack</a></li>
     <li><a>tdClickCallBack</a></li>
     <li><a>trClickCallBack</a></li>
     <li><a>BlurCallBack</a></li>
     <li><a>parentSetDefault</a></li>
     <li><a>setValueCallBack</a></li>
     <li><a>keyDownCallBack</a></li>
     <li><a>afterNewCallBack</a></li>
     <li><a>afterDeleteCallBack</a></li>
  </ul>
</div>

================================================== =============================

上記のように、「href」属性を持つ最初の要素「a」が表示されます。通常は問題なく動作します。動作しない理由はありません。href 属性を持つ単純な「a」タグだからです。

しかし、要素にトグル機能を配置すると問題が発生します。

================================================== =============================

$('#Left .Browsingtree02 li a').toggle(function() {
    $(this).addClass('Selected');   
    $(this).parent().parent().find('.Browsingtree03').show(200);
}, function() {
    $(this).parent().parent().find('.Browsingtree03').hide(200);
    $(this).removeClass('Selected');
});

================================================== =============================

このコードが存在しない場合、属性を持つ最初の 'a' は正常に機能します !!

しかし、ブラウザはリンクを取得できず、リンク先のページにまったく移動しません...

私を助けてください。

4

1 に答える 1

0

For some reasons, jQuery's toggle always prevents the default action. See source code :

// Make sure that clicks stop
event.preventDefault();

So I suggest to not use the toggle function but simply to do this :

$('#Left .Browsingtree02 li a').click(function(){
    var nbclicks = $(this).data('nbc')||0;
    $(this).data('nbc', ++nbclicks);
    if (nbclicks%2) {
        $(this).addClass('Selected');   
        $(this).parent().parent().find('.Browsingtree03').show(200);
    } else { 
        $(this).parent().parent().find('.Browsingtree03').hide(200);
        $(this).removeClass('Selected');
    }
});​
于 2012-12-06T08:53:39.647 に答える