0

どうすればこれができるのだろうと思っていました...何も頭にありません...

私の質問のタイトルは混乱を招く可能性があるため、ここに完全な質問があります。.current を含む 1 つのクラスのアニメーションをスキップして、アニメーションを実行するにはどうすればよいでしょうか。

これはメニュー アニメーションなので、現在のクラスをアニメーション化する必要はありません。意味がありません。

CSS に別のクラスを追加し、高さに !important を使用することで停止できました。このようにアニメーションがないように見えますが、要素を調べるともちろんあります...

JS コード:

$("#topMenu li").mouseover(function(){
    $(this).find('span').stop().animate({ height:'45px' }, { queue:false, duration:600, easing: 'easeOutBounce' });
});

$("#topMenu li").mouseout(function(){
    $(this).find('span').stop().animate({ height:'0px' }, { queue:false, duration:600, easing: 'easeOutBounce' });
});

var currentPage = $('#topMenu span').hasClass('current');

if(currentPage === true) {
    $('span.current').css('display', 'block');
}

だから、アニメーションがないように見えるようにこれを行うことができます...しかし、.currentクラスを含む要素のアニメーションが実際にないように、どうにかしてそれを行うことはできますか?

4

2 に答える 2

3
$(this).find('span:not(.current)').stop().animate...
于 2013-02-04T22:28:49.287 に答える
1

:notセレクターに追加できます:

$('#topMenu li:not(.current)').mouseover(...)

イベント ハンドラーが追加された後にクラスが動的に追加される場合は、チェックをハンドラー内に移動します。

$('#topMenu li').mouseover(function () {
  if ($(this).hasClass('current')) return;
  // etc
});
于 2013-02-04T22:29:39.703 に答える