Twitter bootstrap 在Twitter引导中,如何从模式对话框的关闭中解除事件绑定?

Twitter bootstrap 在Twitter引导中,如何从模式对话框的关闭中解除事件绑定?,twitter-bootstrap,Twitter Bootstrap,我有一个函数,它绑定到隐藏模态对话框的操作 我使用的代码与问题的公认答案类似 $('#myModal').on('hidden', function () { // do something… }) 然而,这个对话框可能会被重新打开进行编辑,当这种情况发生时,我不一定要运行这段代码。是否有办法“解除绑定”该函数,以便在对话框关闭时不再运行该函数?我在中找不到任何内容。您可以执行一些操作,例如解除绑定与模态元素关联的所有事件: 解除模式中所有事件的绑定: /* First option

我有一个函数,它绑定到隐藏模态对话框的操作

我使用的代码与问题的公认答案类似

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

然而,这个对话框可能会被重新打开进行编辑,当这种情况发生时,我不一定要运行这段代码。是否有办法“解除绑定”该函数,以便在对话框关闭时不再运行该函数?我在中找不到任何内容。

您可以执行一些操作,例如解除绑定与模态元素关联的所有事件:

解除模式中所有事件的绑定:

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

/* Second option is to call it directly when needed */
$('#myModal').unbind();
引导模式也有特定的绑定事件,因此您还可以指定要解除绑定的事件

/* Events are 'hidden', 'hide', 'show', 'shown' */
$('#myModal').unbind(/* specific event here */);
如果希望删除与模式内容关联的事件,只需清空
$(“#myModal”)中的元素即可。清空()
并适当地解除绑定这些元素。

使用:

$('#myModal').off('hidden');
为什么不解开

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


来源:。

解除模态事件或模态本身包含的事件的绑定?如果我正确理解了您的问题,请解除模态事件的绑定。我想取消绑定“hidden”上应该发生的任何事情。$(“#myModal”).unbind();工作,但它有点太乱了。。。它还可以使用角落中的“X”解除绑定关闭窗口。当您提到要解除绑定模态事件时,我认为整个模态包括其子级也需要解除绑定。还是只需要解除“隐藏”事件的绑定?类似于$('#myModal').unbind('hidden')。