0

これが以下のフィドルです。

この jsfiddle を作成する理由は、関数内では機能animate()せず、外部では機能するためです。fadeOut()

$(".fader").click(function (e) {
    var self = this;
     $('.fader').not(self).fadeOut(function () {
        $(self).animate({top: "220",left: "200"}); // doesn't work
        LoadContent(fader.attr('id')); // works 
     });

     $(this).animate({top: "220", left: "200"}); // works
});

EDIT:わかりましたanimate()が実行されなかった理由がわかりました-間違った要素を呼び出していました(jsfiddleが修正したのではなく)thisselfしかし、jsfiddleでtoggle()が機能しない理由はまだわかりません。

4

1 に答える 1

0

あなたjsFiddleは間違っています。まず、最初の行で参照しているファイルが存在しないため、jQuery ライブラリは使用しません。2つ目は、クリックイベントをクラスを持つオブジェクトに適用しようとして.faderいるが、クリックされたものではないということです。そして、そのクラスを持つ他のオブジェクトはありません。parents()代わりに使用してください。そして、関数(あなたが呼び出すように)「内側」のfadeOutはfadeOutの最後にトリガーされるため、コードは無意味です。

アニメートとフェードアウトを同時に行いたい場合は、animate のみを使用してください。

$('.fader').animate({ opacity: 0, top: "-1000px", left: "-1000px" }, 'slow');
于 2013-08-14T07:42:39.987 に答える