有人可以解释为什么点击button1
没有被捕获吗?我知道return false
事件click
会停止传播,但它仍然应该捕获元素,document.addEventListener('click', function(e) {console.log(e.target);});
因为我们试图通过e.target
而不是其父元素直接捕获主元素。
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("#button1").click(function(){
return false;
});
});
</script>
</head>
<body>
<button id="button1">Button1 (dont get captured)</button>
<button id="button2">Button2 (get captured)</button>
<script>
document.addEventListener('click', function(e) {
console.log(e.target);});
</script>
</body>
</html>
我无法更改该 jQuery 代码$("#button1").click(function(){return false});
,但仍然想button1
在单击时捕获该元素(使用 javascript),是否有任何解决方法?
我可以另一个事件处理程序绑定到button1
这样的document.getElementById("button1").addEventListener("click", function(e){console.log(e.target)});
现实存在,我想捕获(不同类别和ID),这将是不切实际的事件监听器添加到他们每个人的很多很多的元素,我发现一个按钮,只是一个例子。,我只是想记录点击的任何元素。
我无法更改页面的 jQuery 代码或 HTML,我只想在 chrome 控制台中运行一些测试,为此我想捕获单击的每个元素
谢谢
返回假;阻止浏览器对 button1 链接执行默认操作。
的等效代码return false
是:
$('.button1')
.click(function (event) {
event.preventDefault();
event.stopPropagation();
});
如果您只想停止传播,请使用stopPropagation()
.
看看这个,并阅读更多关于preventDefault()和stopPropagation()
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句