我使用twitter bootstrap modals的 js 显示和隐藏模态框:
$('#myModal').modal('show')//show
$('#myModal').on('shown', function () {
// do something…
})
$('#myModal').on('hidden', function () {
// do something…
})
....
$('#myModal').modal('hide')//hide
我的问题是,当多次显示和隐藏模式时,//do some...
中的代码会运行多次。我想这是因为每次我显示一个模态时,它都会监听 shown
并且当模态隐藏和打开 5 次时,该函数会运行 5 次,有什么方法可以防止这种情况吗?
使用下面建议的方式fco
确实解决了所示的问题,但不幸的是隐藏不起作用,即仍然执行多次,有一点不同,我使用隐藏对话框>data-dismiss="modal"
标记,而不是通过 js。
有什么想法吗?
最佳答案
您应该使用 one 而不是 on
.one() 方法与 .on() 相同,只是处理程序在第一次调用后未绑定(bind)。例如:
$('#myModal').modal('show')//show
$('#myModal').one('shown', function () {
// do something…
})
$('#myModal').one('hidden', function () {
// do something…
})
....
$('#myModal').modal('hide')//hide
关于javascript - 显示方法上的 Bootstrap 模式多次运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15931886/