私の方法は次のように...のdivボックスをフェードアウトしてメソッドを呼び出すコールバックを持っていますJquery fadeOutは何度もコールバックを実行しますが、なぜこれを防止するのですか?
function closeWindow(windowIdPrefix, speed) {
$("#" + windowIdPrefix + "_ViewPanel").fadeOut(speed,
function() {
resetWindow(windowIdPrefix);
numWindowsOpen--;
}
);
}
function resetWindow(windowIdPrefix) {
alert("resetting window");
}
この実行(ボタンのonClickのは)私は何回参照するにはresetWindowでアラートを持っている場合実行します。
これは永遠に実行されているようですが、私はアラートウィンドウを閉じるまでに十分に長く座っていません。
は、私はいくつかの研究を行なったし、jQueryのドキュメントを読み込む:
コールバック(オプション)機能
アニメーションが完了するたびに実行される機能を、はに対して、アニメーションの各要素に対して1回実行されます。
私は1 divをフェードアウトしているにもかかわらず、それは1 ... に1を加算しますか?
内部要素が外側divでフェードアウトされているため、技術的にアニメーション化されていますが、Firebugでjavascriptを見ると、フェードアウトしている外側divのみが不透明/表示を変更します。
これが起きた場合、コールバックが1回だけ実行されるようにするにはどうすればよいですか?
編集:それは私が呼び出しを複数回起こる作っていたいくつかの理由のためになるよう機能する前にnumWindowsOpenを定義していなかったラインnumWindowsOpen--;
だったこれが起こった理由...誰も説明できますか?
resetWindowのコードも投稿できますか? – Powerlord
これは単なる警告ですが、とにかく追加しました。 – Matt
console.log($( "#" + windowIdPrefix + "_ViewPanel")。 fadeOutの前に何を得るのですか? (または、firebugがインストールされていない場合はconsole.logの代わりに警告を行います) – jammus