2016-08-23 79 views
-3

我与谷歌地图阿比玩,我使用Ajax来更新SQL qith验证码:阿贾克斯点击鼠标移动的不同,但有一个点击

$(document).ready(function() { 
    $('#map').click(function() { 
    var request = $.ajax({ 
     url: "php/clic.php", 
     data: { 
     label: "value" 
     }, 
     method: "POST" 
    }); 

    request.done(function() { 
     // Do something after its done. 
    }); 
    }); 
}); 

地图对谷歌的地图格。

问题是代码clic.php在用户点击div时执行,而且用户点击移动地图时也会执行该代码。我不知道ajax很多,所以我想做一个其他条件来检测它是否是一个移动/ clic而不是一个简单的clic!

Thx!

+0

,为什么你不使用的输入,跨度,标签或一些与特定的ID? –

回答

0

检查event.target以查看它是否为#map元素。

$("#map".click(function() { 
    if (event.target != this) { 
     return; 
    } 
    // rest of function 
}); 
+0

我尝试了,但我不是一个很好的javascript开发者,但感谢您的帮助。我无法使用你的代码。我测试,但它不为我工作。 我发现另一个代码运行良好。 Thx试图帮助我。 – kikifrance

0

代码为我工作在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'); 
});