拦截所有鼠标事件

时间:2013-11-16 03:41:23

标签: javascript jquery html

我正在寻找一种方法来拦截网页上的所有鼠标事件(尤其是点击次数)。

我的第一直觉是$('body').click(....)

但是,如果为特定事件附加了任何其他处理程序,则不会捕获该事件。

将问题放在上下文中:我正在为我的网络应用编写一个“统计”模块。我们希望跟踪页面上的所有用户交互以进行调整。如果我们看到他们没有使用功能,我们将添加一个工具提示。

我有以下框架:

jQuery,Knockout和一个小框架“自制”

我想要的是一个用鼠标位置每次点击调用的函数。

1 个答案:

答案 0 :(得分:6)

尝试这样的事情(没有jQuery):

    var eventCount = 0;
    var eventProperty = [];

    var TrackMouse = function (mouseEvent) {
        eventProperty[eventCount++] = {
            id: mouseEvent.toElement.id,
            type: 'mouse',
            ts: Date.now(),
            x: mouseEvent.x,
            y: mouseEvent.y
        };

        console.log("Element id: " + eventProperty[eventCount - 1].id + ", X: " + mouseEvent.x + ", Y: " + mouseEvent.y + "\n");
    };

    document.addEventListener('click', TrackMouse);