如何獲取對JQuery中元素的點擊處理程序的引用?從JQuery中的元素獲取點擊處理程序
這裏就是我想要做:
商店單擊處理程序, 更改下單擊一下處理程序, 恢復原來的單擊處理
var originalClick = $(settings.currentTarget).click;
$(settings.currentTarget).off("click");
$(settings.currentTarget).click(function (e) {
e.preventDefault();
settings.model.modal.close();
$(settings.currentTarget).off("click");
$(settings.currentTarget).click(originalClick);
});
上面的代碼工作原理第一次,然而,當我點擊元素再次失敗:
Uncaught TypeError: Object [object HTMLAnchorElement] has no method 'on'
更新:
我現在意識到這是一個非常糟糕的設計,我正在嘗試。我通過在viewmodel中維護一個可見性布爾值來解決這個問題,如果它是真的,不要重新打開模式。
'$(settings.currentTarget).click'是您綁定事件處理函數的函數。它不是事件處理程序本身。原始事件處理程序是如何綁定的?用jQuery或其他方式? –
@FelixKling原始點擊處理程序使用淘汰賽進行綁定。 – mcottingham
這可能有助於:http://stackoverflow.com/questions/2518421/jquery-find-events-handlers-registered-with-an-object – musicnothing