将click事件应用于除单个元素之外的所有内容

时间:2015-05-13 14:38:58

标签: javascript html events

我想将点击事件应用于Javascript中的整个页面,除了顶部的单个横幅之外的所有内容。假设我不想要事件的横幅的id为'bannerID'。我尝试了以下操作:

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

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

但是,看起来文档事件会覆盖所有内容。有没有人有任何建议?

3 个答案:

答案 0 :(得分:6)

检查处理程序中的element-id,例如;

document.onclick = clickEvent;

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

这称为event delegation

答案 1 :(得分:2)

event参数传递给回调,并检查ID是否为' bannerID'

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

demo

答案 2 :(得分:0)

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

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

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