jQuery:临时冻结/禁用所有事件?

时间:2010-06-01 16:27:39

标签: javascript jquery jquery-ui

我有以下用例:

  • 带有一些按钮的div
  • 当用户 点击按钮,会显示一个弹出窗口 并且背景div消失了 至0.5不透明度

问题是当弹出窗口进入时,用户仍然可以单击背景按钮。此时,我可以暂时删除整个DIV,但我不想这样做。无论如何,我可以禁用所有以前附加的事件,然后只将事件处理程序添加到当前弹出窗口? (我的意思是关闭按钮应该仍然可以在弹出窗口上工作)任何建议?

3 个答案:

答案 0 :(得分:1)

听起来你需要一个modal弹出窗口。有很多jQuery插件可以做到这一点,或者你可以查看this tutorial

答案 1 :(得分:1)

您可以将带有附加事件的每个元素存储到数组中,然后遍历它们并unbind()它们。关闭弹出窗口后,您可以重新bind()

答案 2 :(得分:1)

您可以使用JQuery UI内置的模态对话框选项

http://jqueryui.com/demos/dialog/#modal

$("#dialog-modal").dialog({
                   modal: true
                   });