[英]how to bind again the click event for the button
我有一個按鈕,上面附有一個點擊事件。 單擊它后,我必須取消綁定它,然后在我的代碼中,我需要再次將其單擊事件綁定。 我嘗試再次綁定它,但這不起作用。 我不能使用jQuery的“活”。 有什么方法可以在click事件上創建自定義綁定函數,然后再次調用它?
$(".submitButton").click(function(e){
//some functionality on click
$(".submitButton").unbind('click');
});
//somewhere ahead in my code
$(".submitButton").bind('click');
顯然這是行不通的。 有什么辦法解決這個問題?
在其他地方定義您的監聽器:
function clickHandler() {
//some functionality on click
$(".submitButton").unbind('click', clickHandler);
}
$(".submitButton").bind('click', clickHandler);
//somewhere ahead in my code
$(".submitButton").bind('click', clickHandler);
當您使用.bind()
綁定事件處理程序時,它也希望傳遞一個函數,因為這將在事件觸發時執行。 不要使用匿名函數,而是聲明一個命名函數並在綁定時傳遞對該函數的引用。
function handleClick(e){
//some functionality on click
$(".submitButton").unbind('click');
}
$(".submitButton").click(handleClick);
// somewhere else in your code (in reaction to some other event)
$(".submitButton").click(handleClick);
您的.bind呼叫似乎不正確。 您尚未指定回調。
因此,首先編寫一個函數:
function handleButtonClick() {
//some functionality on click
$(this).unbind('click');
}
注意,在處理程序內部,我正在取消綁定$(this)
,這是被單擊的元素,而不是具有class="submitButton"
所有元素。 接着:
$('.submitButton').bind('click', handleButtonClick);
然后稍后要重新綁定時:
$('.submitButton').bind('click', handleButtonClick);
等等。
您可以使用jQuery.one()
。 請參考下面的代碼。
$(".submitButton").one('click', clickHandler);
此方法的第一種形式與.bind()相同,除了處理程序在首次調用后未綁定。
您可以在必要時調用它或綁定它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.