2016-08-23 5 views
-3

があります:アヤックスは、移動、マウスの異なるクリックが、私はGoogleマップAPIで遊んでいると私は、このコードqith SQLを更新するために、AJAXを使用する]をクリックします

$(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. 
    }); 
    }); 
}); 

マップは、Googleマップのdiv要素をSiが。

問題は、ユーザーがdivをクリックしているときだけでなく、ユーザーがクリックして地図を移動しているときに実行されるコードです。私はたくさんのajaxを知らないので、私は単純なclicではなくmove/clicであるかどうかを検出するelse条件を実行したい!

Thx!

+0

そして、なぜあなたは、特定のIDを入力し、スパン、ラベルか何かを使用していませんか? –

答えて

0

要素であるかどうかを確認するには、event.targetを確認してください。

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

私は試みますが、私は良いjavascript developperではありませんが、あなたの助けに感謝します。私はあなたのコードを使用することはできません。私はテストするが、それは私のために働かない。 別のコードがうまく機能しています。私を助けようとしている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'); 
}); 
関連する問題