私はボタンがクリックされたときにプロセスを起動するために、次のプロトタイプのコードを持っている:jQuery.attr()メソッドが「クリック」イベント内で動作しないのはなぜですか?
jQuery("#queue-process").click(function() {
jQuery("#queue-process").attr("disabled", "disabled");
try {
processQueue();
} catch (e) {
console.log(e.message);
} finally {
jQuery("#queue-process").removeAttr("disabled");
}
});
processQueue
関数が常に呼び出されますが、私はクロームのJavaScriptコンソールに匿名関数をデバッグする場合にのみ、attr("disabled", "disabled")
が呼び出され、つまり、私はその行にブレークポイントを置いて、それをシングルステップ実行すれば動作しますが、デバッガの外側ではprocessQueue()
しか実行されません。
なぜこのようなことが起こる可能性がありますか?
あなたは 'processQueue()'はボタンが1秒間だけ無効になるほど速くないのですか?デバッガを使用する場合の唯一の違いは、実行速度です。 – Interrobang
補足として、ハンドラの中で 'jQuery(this)'を使うことができます。 – pimvdb