代码为我工作在Chrome:
(function($){
var $doc = $(document),
moved = false,
pos = {x: null, y: null},
abs = Math.abs,
mclick = {
'mousedown.mclick': function(e) {
pos.x = e.pageX;
pos.y = e.pageY;
moved = false;
},
mouseup.mclick': function(e) {
moved = abs(pos.x - e.pageX) > $.clickMouseMoved.threshold
|| abs(pos.y - e.pageY) > $.clickMouseMoved.threshold;
}
};
$doc.on(mclick);
$.clickMouseMoved = function() {
return moved;
};
$.clickMouseMoved.threshold = 3;
})(jQuery);
// test delegated
$(document).on('click', '#map', function(e) {
if ($.clickMouseMoved()) {
console.log('click aborted');
return;
}
//console.log('click');
var request = $.ajax({
url: "php/clic.php",
data: { label: "value" },
method: "POST"
});
});
// test bound
$('#map').on('click', function(e) {
if ($.clickMouseMoved()) {
// console.log('click aborted');
return;
}
var request = $.ajax({
url: "php/clic.php",
data: { label: "value" },
method: "POST"
});
//console.log('click');
});
,为什么你不使用的输入,跨度,标签或一些与特定的ID? –