我被卡住,試圖解除綁定並重新綁定單擊事件。我想「保存」點擊事件,取消綁定,並用條件語句重新綁定它。jQuery,試圖保存點擊事件,解除綁定和重新綁定,無法重新綁定
我能夠獲得點擊這裏處理程序使用的信息保存:jQuery find events handlers registered with an object
我在一箇舊版本的jQuery(1.5),所以我使用的數據(「事件」)的方法。
到目前爲止...
var events = $('#myElement').data("events");
alert(events.click[0].handler);
$('#myElement').unbind('click');
現在,它會提醒我的處理函數,它看起來是正確的。我想添加東西,但我認爲對於初學者我只是嘗試重新綁定相同的點擊事件。但是,我不確定如何正確重新綁定。我已經嘗試過的東西:
$('#myElement').bind('click', null, events.click[0].handler); // gives 'click.0 is null or not an object
$('#myElement').bind('click', events.click[0].handler); // gives 'click.0 is null or not an object
$('#myElement').bind('click', null, events.click); // seems to have no effect
$('#myElement').bind('click', events.click); // seems to have no effect
所以我覺得我幾乎有它,但我不知道從這裏做什麼。如何使用events變量重新綁定click事件?
謝謝你的任何和所有幫助。
我們有,我們在一個單獨的.js文件重用了很多的處理函數。它適用於我正在處理的頁面中的大量控件,我只需要將條件語句添加到其中的一個,這就是爲什麼我希望「保存」它,解除綁定並重新綁定它有條件的陳述。現場方法不給我任何錯誤,但它似乎並沒有工作... – Mike 2013-02-26 16:38:42
我試過$('#myElement')。die(); $('#myElement')。live('click',events.click [0] .handler);這是它應該看起來如何?謝謝。 – Mike 2013-02-26 16:39:50
@Mike,我寫了一個函數來取回之前綁定的處理程序。請注意,上述代碼僅在您使用.live綁定click事件和.die來移除所有事件時才起作用。試試上面的代碼。 – Derek 2013-02-26 17:34:31