我有这个简单的脚本捕获所有鼠标点击,除非你点击实际工作的东西。链接,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();
});
答案 0 :(得分:2)
我认为最好的方法是使用实时绑定和*选择器
$('*').live('click.clickmap', function(evt){ ... });
也可能需要同步ajax调用(你需要使用.ajax()
...)(不确定是否需要这样做,以避免get调用被正常情况中断链接点击)
答案 1 :(得分:1)
您是否可以将点击事件绑定到通配符?即。
$('*').bind('mousedown.clickmap', function(evt){
//do stuff
});