jQuery-捕获/拦截所有鼠标单击

我有一个简单的脚本,可以捕获所有鼠标单击,除非您单击实际起作用的东西.链接,Flash视频等.在视频加载,新页面加载等之前,无论用户单击什么,如何进行调整?它都会发送我构建的简单GET请求?

(function($) { 

$.fn.saveClicks = function() { 
$(this).bind('mousedown.clickmap',function(evt) {
    var clickDocument = (document.documentElement != undefined && document.documentElement.clientHeight != 0) ? document.documentElement : document.body;
    var width = clickHeatDocument.clientWidth != undefined ? clickDocument.clientWidth : window.innerWidth;
    var height = clickHeatDocument.clientHeight != undefined ? clickDocument.clientHeight : window.innerHeight;
    var scrollx = window.pageXOffset == undefined ? clickDocument.scrollLeft : window.pageXOffset;
    var scrolly = window.pageYOffset == undefined ? clickDocument.scrollTop : window.pageYOffset;
    var x = evt.clientX + scrollx;
    var y = evt.clientY + scrolly;
    $.get('/click-save.php',{  
        "x":x,"y":y,"click":"true","w":width,"h":height,"l":escape(document.location.pathname),"d":escape(document.domain)
    }); 
}); 
};

})(jQuery); 

$(function() {
    $(document).saveClicks();
});
最佳答案
我认为最好的方法是使用实​​时绑定和*选择器

$('*').live('click.clickmap',function(evt){ ... });

同样,ajax调用可能需要同步(您需要为此使用.ajax().)(虽然不确定是否需要这样做,以避免正常链接单击打断get调用)

相关文章

1.第一步 设置响应头 header('Access-Control-Allow...
$.inArray()方法介绍 $.inArray()函数用于在数组中搜索指定的...
jquery.serializejson.min.js的妙用 关于这个jquery.seriali...
JS 将form表单数据快速转化为object对象(json对象) jaymou...
jQuery插件之jquery.spinner数字智能增减插件 参考地址:http...