簡體   English   中英

如何再次綁定按鈕的click事件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM