0

メイン div 内に非常に多くの div があり、正確にその div を選択するのは困難です。次のように仮定します。

<div id="main">
  <div>
   <div></div>
   <div>
     <div>
       <div>
       <div class="myclass">
       </div>
.....
</div>

したがって、私のマークアップを使用すると、次の方法でクラスを選択できます。.myclass

まず、次のようにクラスを削除する必要がありmyclassます。$('.myclass').removeClass('myclass');

次に、同じクラスを追加する必要があります

だから私はこのように試しました:

$('.thisclass').addClass('myclass').removeClass('thisclass');
$('.myclass').addClass('thisclass').removeClass('myclass');

ただし、オン/オフクリック機能の内部

このフィドルで、私がやりたいことをしていないことがわかります。

したがって、私の重要な質問は、クリック機能の後に前のクラスをロールバックするにはどうすればよいかということです。前のクラスとクリック後に削除する必要があります。

mouseenter や mouseleave と同じですが、on('click') の後に非常に必要です

4

2 に答える 2

0

次のような意味ですか :

$('#clickthis').on('click', function(){
    $('.thisclass').addClass('myclass').removeClass('thisclass');

//call this function later, after the 'click' event has been handled :
    setTimeout(function(){
        $('.myclass').addClass('thisclass').removeClass('myclass');
    }, 0);
});

関数のコールバックをsetTimeout使用する必要があります。complete.animate()

$(...).animate( ...,  function(){
    //this function will be called once the animation is finished

    $('.myclass').addClass('thisclass').removeClass('myclass');
    // add any action you want to take on animation's end
})

すべての jQuery の効果関数(例: fadeInslideToggleなど) は、コールバックを受け入れcompleteます。

于 2013-09-25T07:40:38.847 に答える