0

私はjQueryに非常に慣れていませんが、学びたいと思っています。このため、私は jsFiddle を使用してプレイし、何ができるかを確認しています。特に深刻なことはなく、アニメーションで遊んでいるだけです。具体的には、2 つのクラス間でアニメーション化する機能です。

要点を言えば、これを見て、それが機能するために .delay が必要な理由を教えてもらえますか?

http://jsfiddle.net/Ps4Xn/2/

$('div').click(function() {    
    if ($(this).hasClass('clicked')) {
        $(this).delay(1).removeClass('clicked', 5000, 'easeInElastic');
    } else {
        $(this).delay(1).addClass('clicked', 5000, 'easeInElastic');
    }
});

私が知る限り、2 つの .delay を取り除くことができるはずですが、そうするとうまくいきません。

4

1 に答える 1

2

物事を単純化しましょう。

アニメーション化されていないバージョン (jsfiddle) :

$('div').click(function() {
    $(this).toggleClass('clicked');
});

正しくアニメーション化されたバージョン (jsfiddle)
正しくアニメーション化されたバージョン (jsbin)

$('div').click(function() {
    $(this).toggleClass('clicked', 5000, 'easeInElastic');
});

コードは jsbin では機能しますが、jsfiddle では機能しません。jsfiddle には何か問題があります。それはあなたのコードではありません。
私は通常、jQueryUI を使用するツールとして jsfiddle を使用することを避けています。

于 2011-02-23T16:50:16.157 に答える