我想检测每当有人点击div时(基本上我想知道用户何时与我网站上的一段文字进行交互,通过选择一些文字或点击一个链接),但我不想干扰用户正在做的事情.
如果我在div上放置一个onmousedown或onclick事件,它最终会破坏选择,链接等.有没有办法捕获这些事件而不会造成任何干扰?
Onmousedown或onclick不应该干扰任何事情,只要它没有 return false;.
你可以这样做:
document.getElementById("spy-on-me").onmousedown = function () {
console.log("User moused down");
return true; // Not needed, as long as you don't return false
};
Run Code Online (Sandbox Code Playgroud)
如果您有其他脚本通过此方法在页面上附加行为,那么为了防止覆盖它们,您可以执行以下操作:
var spyElement = document.getElementById("spy-on-me");
var oldMousedown = spyElement.onmousedown;
spyElement.onmousedown = function () {
console.log("User moused down");
if(oldMousedown) oldMousedown();
};
Run Code Online (Sandbox Code Playgroud)
是的,我怀疑您当前正在false事件绑定结束时返回,只是不要执行此操作或此绑定中的任何操作:
$('a').click(function(e) {
e.stopPropagation();
e.preventDefault();
return false;
});
Run Code Online (Sandbox Code Playgroud)
如果您不执行这三件事中的任何一项,jQuery 将不会阻止事件冒泡到浏览器。
编辑:抱歉没有意识到这是一个简单的 JavaScript 问题。
| 归档时间: |
|
| 查看次数: |
10955 次 |
| 最近记录: |