Javascript 将单击事件应用于除单个元素以外的所有对象

Javascript 将单击事件应用于除单个元素以外的所有对象,javascript,html,events,Javascript,Html,Events,我想将一个点击事件应用到Javascript中的整个页面,除了顶部的一个横幅之外的所有内容。假设我不希望事件出现的横幅的id为“bannerID”。我试着做了以下几点: document.onclick = function(){clickEvent()} document.getElementById("bannerID").onclick = function(){return false;} 但是,文档事件似乎覆盖了所有内容。有人有什么建议吗?检查处理程序中的元素id,例如 docum

我想将一个点击事件应用到Javascript中的整个页面,除了顶部的一个横幅之外的所有内容。假设我不希望事件出现的横幅的id为“bannerID”。我试着做了以下几点:

document.onclick = function(){clickEvent()}

document.getElementById("bannerID").onclick = function(){return false;}

但是,文档事件似乎覆盖了所有内容。有人有什么建议吗?

检查处理程序中的元素id,例如

document.onclick = clickEvent;

function clickEvent(e) {
 var from = e.target || e.srcElement;
 if (from.id === 'bannerID') { return; }
 /* ... the handling continues ... */
}

这称为检查处理程序中的元素id,类似于

document.onclick = clickEvent;

function clickEvent(e) {
 var from = e.target || e.srcElement;
 if (from.id === 'bannerID') { return; }
 /* ... the handling continues ... */
}

这被称为

事件
参数传递到回调,并检查id是否为“bannerID”

document.onclick = 
    function(event){
        if(event.target.id != 'bannerID'){
            clickEvent()
        }
    };

事件
参数传递给回调,并检查id是否为“bannerID”

document.onclick = 
    function(event){
        if(event.target.id != 'bannerID'){
            clickEvent()
        }
    };

在上面的代码中,您正在将两个单击事件添加到“bannerID”-因此它将执行
clickEvent()
并返回
false

但是,您可以从
onclick
函数中排除特定元素。这可能有助于:

document.onclick = function(e) {
  if (e.target.id === 'bannerID') {
    return false;
  } else {
    clickEvent();
  }
};

在上面的代码中,您向“bannerID”添加了两个单击事件,因此它将执行
clickEvent()
返回
false

但是,您可以从
onclick
函数中排除特定元素。这可能有助于:

document.onclick = function(e) {
  if (e.target.id === 'bannerID') {
    return false;
  } else {
    clickEvent();
  }
};