JavaScript-将单击事件自动应用于每个HTML元素
我想将单击事件(或任何其他事件)自动应用于页面上的每个HTML元素 我正在开发一种“点击游戏”,并希望使用一个通用JavaScript函数,它将处理页面上每个HTML元素的每次点击 这可能吗JavaScript-将单击事件自动应用于每个HTML元素,javascript,html,javascript-events,onclick,Javascript,Html,Javascript Events,Onclick,我想将单击事件(或任何其他事件)自动应用于页面上的每个HTML元素 我正在开发一种“点击游戏”,并希望使用一个通用JavaScript函数,它将处理页面上每个HTML元素的每次点击 这可能吗 document.addEventListener('click', function(e) { console.log(e.target); }, false); e.target将为您提供已单击的元素 e.target将为您提供已单击的元素。这不仅是可能的,而且是微不足道的: document
document.addEventListener('click', function(e) {
console.log(e.target);
}, false);
e.target
将为您提供已单击的元素
e.target
将为您提供已单击的元素。这不仅是可能的,而且是微不足道的:
document.body.addEventListener("click", function(e) {
// Use e.target for the clicked element
}, false);
单击“气泡”,从单击的元素到其父元素,再到其父元素,再到其父元素,等等,直到它们到达文档。(除非中间的事件处理程序通过e.stopPropagation
)停止该操作,否则上述操作将钩住单击主体(所有可见元素的容器)
请注意,以上内容适用于所有现代浏览器,包括标准模式下的IE9和更高版本。它在IE8及更早版本(或IE9及后来假装为IE8或更早版本)上不起作用,因为它们没有addEventListener
。您必须使用IE特有的attachEvent
。这不仅是可能的,而且是微不足道的:
document.body.addEventListener("click", function(e) {
// Use e.target for the clicked element
}, false);
单击“气泡”,从单击的元素到其父元素,再到其父元素,再到其父元素,等等,直到它们到达文档。(除非中间的事件处理程序通过e.stopPropagation
)停止该操作,否则上述操作将钩住单击主体(所有可见元素的容器)
请注意,以上内容适用于所有现代浏览器,包括标准模式下的IE9和更高版本。它在IE8及更早版本(或IE9及后来假装为IE8或更早版本)上不起作用,因为它们没有addEventListener
。您必须改用IE特有的attachEvent
。为什么不直接绑定文档上的事件而不是正文?它是否更改了任何内容?单击“气泡”,从单击的元素到其父元素,然后是其父元素,然后是其父元素,等等,直到它们到达文档。
除非使用return false阻止事件气泡代码>或事件停止播放()
@Tushar:return false
只在jQuery下执行,但是是的,除非传播被介入的处理程序阻止。@T.J.Crowder我刚刚发现你已经回答了我关于@Tushar的问题:“点击气泡”是正确的,而不是“点击气泡”。我也用函数名来表示函数,没有()
,意思是“document”是一个单词,而不是一个符号。为什么不直接绑定文档上的事件而不是正文?它是否更改了任何内容?单击“气泡”,从单击的元素到其父元素,然后是其父元素,然后是其父元素,等等,直到它们到达文档。
除非使用return false阻止事件气泡代码>或事件停止播放()
@Tushar:return false
只在jQuery下执行,但是是的,除非传播被介入的处理程序阻止。@T.J.Crowder我刚刚发现你已经回答了我关于@Tushar的问题:“点击气泡”是正确的,而不是“点击气泡”。我也用函数名来表示函数,没有()
,而是将“document”表示为一个单词,而不是一个符号。“apply”是指“handle”吗?jQuery劫持了术语bind
来表示完全不同的含义,让那些不懂术语的人感到困惑。正确的术语是“附加事件处理程序”。通过“应用”,您的意思是“句柄”吗?jQuery劫持了术语bind
,使其含义完全不同,并使那些不懂术语的人感到困惑。正确的术语是“附加事件处理程序”。是否可以将“this”HTML元素传递给函数?例如,我的意思是:-因此p元素被传递给函数。或者我应该使用tagName/localName属性?是否可以将“this”HTML元素传递给函数?例如,我的意思是:-因此p元素被传递给函数。或者我应该使用标记名/本地名属性?