Jquery禁用功能

时间:2014-09-21 20:07:29

标签: javascript jquery

function myfunction(){
    $('button').click(function(){
        alert();
    });
}

myfunction();

$('#x').off('click', myfunction);//click disable myfunction();

<button></button>
<span id='x'></span>

我需要禁用功能,我已经尝试关闭jquery,但它不能正常工作

谁能告诉我怎么样?以及如何再次启用?

3 个答案:

答案 0 :(得分:2)

您期望这样做到底是什么?:

$('#x').off('click', myfunction);

假设#xbutton的子集,您实际上从未在myfunction处首先将button设置为处理程序。您设置了匿名函数:

$('button').click(function(){
    alert();
});

如果要“禁用”该功能(即从元素中删除单击处理程序),则将其设为非匿名函数并删除处理程序:

function myfunction () {
    alert();
}

$('button').on('click', myfunction);

$('#x').off('click', myfunction);

或者,如果你只是想做一次,并试图在除了那个之外的所有元素上设置处理程序,只需从选择器中省略它:

$('button').not('#x').on('click', myfunction);

答案 1 :(得分:1)

添加一个变量,如is Disabled = false; 在MyFunction()的开头检查该变量。 并在#x点击时将该变量设置为true。

答案 2 :(得分:0)

使用禁用属性时,Internet Explorer中有一个错误,该错误带有函数attr()e prop()...。 完整的解决方案请参见此处: https://lentux-informatica.com/bug-jquery-disable-e-internet-explorer-soluzione/