jQuery如何在unbind之后绑定

时间:2012-06-16 12:45:37

标签: jquery

我有一个超级简单的id标签,它有点击事件。我已经使用JQuery unbind来禁用某些场景的点击,当我尝试再次使用下面的代码绑定时,click事件永远不会被触发。

disableButton()
{
    $('#id1').unbind('click');
}
        .......
enableButton()
{
    $('#id1').bind('click');
}

点击处理程序如下所示:

$("#id1").click(function () {
    //apply some complex front end business rules
}

有人可以帮我解决我做对/错的事吗?

我只是想启用或禁用点击,是否有更简单的方法来实现这一目标?

更新

据我所知,bind和on都需要一个执行的回调函数。对于我的情况,这将是一个问题,因为我不想执行click事件,只是启用click事件并准备好进行点击。

是否可以在不必传递回调函数的情况下禁用和启用点击事件?

3 个答案:

答案 0 :(得分:2)

首先声明函数:

function clickFunction(){
//your code here, to be execute on click
}  

如果需要,请在点击事件

上绑定点击功能
$('#id1' ).on("click", clickFunction())

以后取消绑定:

$('#id1' ).off("click", clickFunction())

当您想再次绑定它时:$('#id1' ).on("click", clickFunction())

答案 1 :(得分:0)

我遇到了一个类似的问题,需要取消绑定(“点击”),我唯一能让它停止的方法是利用我定义的计数器上的开关。也许这种方法可能会有所帮助。

$(".images").on("click", function () {
    console.log(this.id);

    switch (cntr) {
       case 0:
           something();
           break;
       case 1:
           something();
           break;
       default:
           return;
    }
});

答案 2 :(得分:0)

给定的解决方案解决了我的问题,您也应该尝试一下。

from flask import Flask
from flask_cors import CORS
app = Flask(__name__) CORS(app)