Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.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 如何通过单击ono弹出区域消除弹出气泡_Javascript_Google Chrome Extension - Fatal编程技术网

Javascript 如何通过单击ono弹出区域消除弹出气泡

Javascript 如何通过单击ono弹出区域消除弹出气泡,javascript,google-chrome-extension,Javascript,Google Chrome Extension,当用户双击网页时,我使用以下代码创建弹出气泡: function displaySomething(x, y) { var div = document.createElement("div"); div.id = "displaySomething_div"; .... } var listener = function (event) { if (event.button == 0 ) { var div = document.getElementById(

当用户双击网页时,我使用以下代码创建弹出气泡:

function displaySomething(x, y) {
var div = document.createElement("div");
div.id = "displaySomething_div";
    ....
}

var listener = function (event) {
    if (event.button == 0 ) {
        var div = document.getElementById("displaySomething_div");
    if (div) {
        document.body.removeChild(div);
    }
        displaySomething(event.pageX, event.pageY);
    } 
};

document.addEventListener("dblclick", listener, false);
目前,只有当我双击页面或气泡时,弹出气泡才会消失


只有在页面的非气泡区域上单击一次,才可以消除弹出气泡吗?也就是说,如果我在气泡上单击或选择,气泡将保持在那里。

向弹出div添加一个单击处理程序,它将停止单击事件的传播,然后您可以安全地将一个单击处理程序附加到文档父级

例如:

stopPropagation()
在我的场景中非常有效。非常感谢你!
function displaySomething(x, y) {
    var div = document.createElement("div");
    div.id = "displaySomething_div";
    ...
    div.addEventListener('click', function(e) { e.stopPropagation(); }, false);
}

var listener = function (event) {
    if (event.button == 0) {
        var div = document.getElementById("displaySomething_div");
        if (div) {
            document.body.removeChild(div);
        } else {
            displaySomething(event.pageX, event.pageY);
        }
    }
};

document.addEventListener('click', listener, false);