Javascript 如何打开/关闭$(文档)。单击()事件或其他解决方案

Javascript 如何打开/关闭$(文档)。单击()事件或其他解决方案,javascript,jquery,mouseevent,Javascript,Jquery,Mouseevent,我有一个DIV标记,单击该标记时,我希望启动一个流程,然后单击文档上的任意位置,我希望结束流程。到目前为止,我已经尝试过: $(document).click(end_process); $('div_tag_id').click(start_process); 这是不好的,因为单击启动流程后也会立即结束流程。有什么想法吗?在你的处理程序中使用: $('div_tag_id').click(function(e) { e.stopPropagation(); start_pro

我有一个DIV标记,单击该标记时,我希望启动一个流程,然后单击文档上的任意位置,我希望结束流程。到目前为止,我已经尝试过:

$(document).click(end_process);
$('div_tag_id').click(start_process);
这是不好的,因为单击启动流程后也会立即结束流程。有什么想法吗?

在你的处理程序中使用:

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

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

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


当然,您只想阻止事件在启动\u进程处理程序中冒泡:

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

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

您可以在
start\u process
函数中调用
.stopPropagation()
,以阻止事件冒泡到
文档中:

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

以下是
.stopPropagation()
的文档:

使用
stopPropagation
停止单击传播到父对象

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

或者,只需将
stopPropagation
添加到
start\u process

的主体中,传递事件对象以模拟原始代码是个好主意,不过您可能还需要设置
此值<代码>启动进程。调用(this,e).True,这可能就是我要做的,我只是尝试复制以前发送给该方法的参数。这比我预期的要容易得多,好的老jQuery!谢谢所有回复的人。