可以在文档头中使用不显眼的 Javascript 事件吗?

Can unobtrusive Javascript event be used in document head?

提问人:Googlebot 提问时间:6/18/2012 最后编辑:Brian Tompsett - 汤莱恩Googlebot 更新时间:9/13/2020 访问量:122

问:

对于纯 JS,有一些关于不显眼事件的例子。这个主题中的大多数问题实际上都可以通过jQuery解决方案得到解答。我想知道这个简单的例子是如何工作的。正如我所测试的,文档头内的此功能非常适合单击整个文档

document.onclick=function(){alert("OK");}

但这不适用于点击<div id="test">CLICK</div>

document.getElementById("test").onclick=function(){alert("OK");}

如何捕获对元素的点击以实现不显眼的 JS 功能?

更新的问题:按照 ascii-lime 的回答,如何在文档“head”中放置不显眼的 Javascript 事件?

javascript onclick dom-events unobtrusive-javascript

评论


答:

4赞 Paul 6/18/2012 #1

它工作得很好

确保脚本在存在之后运行,方法是将脚本放在 之后,或者在事件处理程序中运行脚本。<div><div>window.onload

或者,您可以将 附加到文档(因为文档在脚本运行之前肯定存在),然后检测单击了哪个元素,如下所示onclick

document.onclick = function(e){
    e = e || window.event;
    if(e.target.id == 'test')
        alert('OK');
}

评论

0赞 Googlebot 6/18/2012
你的回答是完美的,澄清了模糊的问题,但我更新了问题,因为这也应该是其他人的问题。
0赞 Googlebot 6/18/2012
晶莹剔透!我可以说互联网上没有这么明确的解释,因为我搜索了很多。我相信这将有助于其他人寻找这个问题。
0赞 Dexter Huinda 6/18/2012 #2

我已经在 JSFiddle.net 中测试了您的代码,它似乎正在运行。

在此处查看实际操作:http://jsfiddle.net/kNFrz/

我已经使用 Chrome 19.0 和 IE 9.0 进行了测试