【发布时间】:2014-03-03 06:26:53
【问题描述】:
我使用Bootstrap3 Modal。我将“hidden.bs.modal”与处理程序绑定,但在特殊情况下,我只需要关闭模式而不调用隐藏处理程序,之后,下次用户打开模式并再次关闭它,然后隐藏处理程序被调用正常:
//suppose modal is shown, unbind first to prevent the handler run
$('..').unbind('hidden.bs.modal');
$('..').modal('hide');
//rebind the handler
$('..').bind('hidden.bs.modal',function(){//...});
但似乎不起作用:它仍然调用处理程序。 有没有办法做到这一点?
谢谢
【问题讨论】:
-
你试过先隐藏然后解除绑定吗?对元素调用 .modal('hide') 会在您解除绑定后再次附加该事件。 $('..').modal('隐藏'); $('..').unbind('hidden.bs.modal'); $('..').bind('hidden.bs.modal',function(){//...});
-
试过但没有运气,正如我所说,我想要的是'只是隐藏模式而不调用隐藏处理程序',但是下次当你打开对话框并隐藏它时,它会像往常一样调用隐藏处理程序.
-
我可能不理解这个场景。你不能只使用 $('..').hide(); ?
-
使用 $('..').hide();确实隐藏了对话框,但将黑色背景留在那里,我无法再次与页面交互。
-
这有点“hackish”,但你也可以 .hide() 那个元素。
标签: javascript twitter-bootstrap modal-dialog