要素がアニメーション化されているときにクリックできないようにしようとしています。アニメーションが完成したら、もう一度クリックできるようにしたいです。これを達成する方法についての助けを長い間探してきましたが、それを機能させることができず、その理由もわかりません。
HTML:
<p>
<span class="red" id="a">A</span><span id="llright" class="hide">llright</span> B C D
</p>
文字 A をクリックすると、文字 A が左に移動し、その横にいくつかのテキストがフェード インします。
jQuery:
(function() {
var letterA = $('#a'),
llright = $('#llright');
$('#a:not(.open)').live('click', function() {
letterA.animate({
marginRight: "5.7in",
}, 1300, function() {
letterA.addClass('open');
llright.fadeIn(1300); // Animation complete.
});
});
$('#a.open').live('click', function() {
llright.fadeOut(700);
letterA.delay(700).animate({
marginRight: "0.0in",
}, 700, function() {
letterA.removeClass('open');
});
});
})();
アニメーションはうまく機能しますが、これはうまくいきません:
if(letterA.is(':animated')) {
letterA.unbind('click');
};
unbind() の代わりに単純な alert() を挿入しても、最後の部分はまったく機能しません。
ここで本当に助けが必要です。考えられることはすべて試しました。
Thx/オスカー