を使用するたびに、私は(他の多くのタスクの中で)いくつかの要素にイベントリスナー(.click(...))を追加する機能を持つ新しいリスナーを追加します。は)それが
この関数を複数回呼び出す必要があります(たとえば、ウィンドウのサイズを変更する場合) たびに私は、リスナーが再び追加され、この関数を呼び出す - ので、私は私の機能を3回呼び出す場合、各クリックではなく1時間で3回発生します。私はsimplyfied例構築してい
:このサンプル(とのsetTimeout)もちろん https://plnkr.co/edit/5NmIruVoAknfcrRTBSYb
var clickMe = $("#clickme");
function init() {
setTimeout(function() {
clickMe.click(function() {
$("#output").append(".");
})
}, 100)
}
init();
$("#recall").click(function() {
init();
});
は意味がありませんが、それは最高の私のコードブロックを反映しています。 私はそれを呼び出すとすべてがリセットされるようにinit関数全体を閉じることはできますか?または、毎回unbind()でイベントを削除する必要がありますか?
です。 ( "クリック") ' clickMe.unbindを挿入します;' '前clickMe.click(関数()'このようhttps://plnkr.co/edit/iFAEantGoMyIhkYJMKwj?p=preview –
バージョンで 'Jquery'を使用している場合、 1.7より大きい場合、 'unbind'ではなく' on'' off'を使用する方が良いでしょう – Mark
これはうまくいきますが、私は要素/ハンドラがたくさんあるのでより洗練されたソリューションがあることを願っています – Gerfried