Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 有没有办法在不调用隐藏处理程序的情况下关闭引导模式_Javascript_Twitter Bootstrap_Modal Dialog - Fatal编程技术网

Javascript 有没有办法在不调用隐藏处理程序的情况下关闭引导模式

Javascript 有没有办法在不调用隐藏处理程序的情况下关闭引导模式,javascript,twitter-bootstrap,modal-dialog,Javascript,Twitter Bootstrap,Modal Dialog,我用。我用一个处理程序绑定'hidden.bs.modal',但在一个特殊情况下,我需要关闭modal而不调用隐藏的处理程序,之后,下次用户打开modal并再次关闭它时,隐藏的处理程序会被正常调用: //suppose modal is shown, unbind first to prevent the handler run $('..').unbind('hidden.bs.modal'); $('..').modal('hide'); //rebind the handler $('..

我用。我用一个处理程序绑定'hidden.bs.modal',但在一个特殊情况下,我需要关闭modal而不调用隐藏的处理程序,之后,下次用户打开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(){//...});
但似乎不起作用:它仍然调用处理程序。 有没有办法做到这一点


谢谢

我之前也遇到过同样的问题,并且在某些情况下使用了这种黑客手段来防止调用隐藏回调。希望对你有帮助

function close_modal_without_callback() {
      $('#myModal').off('hidden.bs.modal');//`off` to remove event handler attached with `on`
      $('#myModal').modal('hide'); // hide modal
      setTimeout(function() { //to add little delay to reattach the event
            $('#myModal').on('hidden.bs.modal', function(e) {
                     hidden_handler(); //handler function 
            });
       }, 1000);
 }

你试过先把它藏起来再解开吗?在元素上调用.modal('hide')会在解除绑定后再次附加事件$(“…”).modal(“隐藏”)$(“..”).unbind('hidden.bs.modal')$('..').bind('hidden.bs.modal',function(){/…});尝试过但没有成功,正如我所说,我想要的是“只隐藏模态而不调用隐藏的处理程序”,但下次打开对话框并隐藏它时,它将正常调用隐藏的处理程序。我可能不理解该场景。您不能只使用$('..).hide()?使用$('..').hide();确实隐藏了对话框,但留下了黑色背景,我无法再次与页面交互。这有点“黑客”,但你也可以。隐藏()该元素。你的黑客几乎完美无瑕,我只是忘记了尝试超时方法…非常感谢。太棒了!我怎么能想象,有云存在?!?!谢谢