向弹出div添加一个单击处理程序,以停止click事件的传播,然后您可以安全地将单击处理程序附加到文档父级。
例: http://jsfiddle.net/M6asx/
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);