在Twitter Bootstrap中,如何从关闭模式对话框中取消绑定事件?

时间:2013-01-22 03:22:29

标签: twitter-bootstrap

我有一个与隐藏模态对话框的操作绑定的函数。

我使用的代码类似于this问题的已接受答案。

$('#myModal').on('hidden', function () {
    // do something…
})

但是,此对话框可能会重新打开以进行编辑,并且当发生这种情况时,我不一定要运行此代码。有没有办法“取消绑定”该功能,以便在对话框关闭时不再运行该功能?我在the documentation中找不到任何内容。

2 个答案:

答案 0 :(得分:29)

您可以执行类似取消绑定与模态元素关联的所有事件的操作:

取消绑定模态中的所有事件:

/* First option */
$('#myModal').on('hidden', function (e) {
    $(e.currentTarget).unbind(); // or $(this)        
});

/* Second option is to call it directly when needed */
$('#myModal').unbind();

Bootrap模式还有与之关联的特定事件,因此您还可以指定要取消绑定的事件。

/* Events are 'hidden', 'hide', 'show', 'shown' */
$('#myModal').unbind(/* specific event here */);

如果您希望删除与模态内容相关的事件,您只需清空$('#myModal').empty()中的元素并相应地取消绑定这些元素。

答案 1 :(得分:6)

使用:

$('#myModal').off('hidden');

为什么不解开?

  

从jQuery 3.0开始,.unbind()已被弃用。自jQuery 1.7以来,它被.off()方法取代,因此不鼓励使用它。

来源:jQuery API