使用Javascript检测鼠标点击div没有副作用

Imr*_*ran 5 html javascript

我想检测每当有人点击div时(基本上我想知道用户何时与我网站上的一段文字进行交互,通过选择一些文字或点击一个链接),但我不想干扰用户正在做的事情.

如果我在div上放置一个onmousedown或onclick事件,它最终会破坏选择,链接等.有没有办法捕获这些事件而不会造成任何干扰?

Dav*_*ang 8

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)


Mar*_*row 3

是的,我怀疑您当前正在false事件绑定结束时返回,只是不要执行此操作或此绑定中的任何操作:

$('a').click(function(e) {
    e.stopPropagation();
    e.preventDefault();
    return false;
});
Run Code Online (Sandbox Code Playgroud)

如果您不执行这三件事中的任何一项,jQuery 将不会阻止事件冒泡到浏览器。

编辑:抱歉没有意识到这是一个简单的 JavaScript 问题。