7

如何禁用和启用点击事件。

我试过:

$('#web').on('click', function web_function(event){
    event.stopPropagation();
    // execute a bunch of action to preform
});
$('#web').off('click'); // click is succesfully removed
$('#web').on('click'); // doesnt work, i need to redefine the actions to perform

我也尝试禁用:

$('#web').unbind('click'); // click is succesfully removed
$('#web').bind('click'); // nok

但这也行不通...

所以,我想禁用/启用点击事件,而不需要重新定义要执行的操作。某种切换...(点击开/关)

以及如何实现事件以停止传播?

我怎样才能做到这一点?

4

2 回答 2

15

每当您bind(或rebind)时,您都需要将处理程序函数作为参数传递。

在您的情况下,您可以命名函数,您可以在任何时候再次重新绑定时使用它来传递它。见下文,

var myFunc = function(event){
     event.stopPropagation();
     // execute a bunch of action to preform
}

$('#web').on('click', myFunc); //bind myFunc
$('#web').off('click'); // click is succesfully removed
$('#web').on('click', myFunc); //rebind again
于 2012-11-07T18:57:47.113 回答
3

首先使用jQuery的方法禁用元素prop(),即

$("selector").prop("disabled",true);

并且当您要启用单击时,只需使用

$("selector").prop("disabled",false);
于 2018-05-11T09:01:49.153 回答