如何打开/关闭$(document).click()事件或其他解决方案

时间:2011-11-28 19:41:19

标签: javascript jquery mouseevent

我有一个DIV标签,当我点击它时我想开始一个过程,然后点击文档中我要结束过程的任何地方。到目前为止,我已经尝试过这个:

$(document).click(end_process);
$('div_tag_id').click(start_process);

这不好,因为点击启动过程也会立即结束此过程。有什么想法吗?

5 个答案:

答案 0 :(得分:2)

在处理程序中使用stopPropagation

$('div_tag_id').click(function(e) {
    e.stopPropagation();
    start_process();
});

答案 1 :(得分:2)

我相信你想要这样的东西:

$('div_tag_id').click(function(e) {
   e.stopPropagation();
   start_process(e);
});

见:

http://api.jquery.com/event.stopPropagation/

答案 2 :(得分:1)

当然,你只想阻止事件在你的start_process处理程序中冒泡:

start_process(e) {
  e.stopPropagation();
}

编辑:看起来每个人都在同一时间说同一件事。祝你好运!

答案 3 :(得分:1)

您可以在.stopPropagation()功能中致电start_process,以阻止事件冒泡到document

function start_process(event) {
    event.stopPropagation();
    //..your code here
}

以下是.stopPropagation()的文档:http://api.jquery.com/event.stoppropagation/

答案 4 :(得分:0)

使用stopPropagation停止点击传播到父级。

$('div_tag_id').click(function(e){
    start_process();
    e.stopPropagation();
});

或者,只需将stopPropagation添加到start_process的正文中。