可動 div がクリックされたかドラッグされたかを判断する必要があります。この問題には複数の解決策があることは知っていますが、プロジェクト全体の性質と使用しているスクリプトにより、他の方法を適用することはできません。これらはいくつかの jQuery メソッドに干渉するためです。
これは私のコードです:
$('.textFieldOuter').mousedown(function(e) {
var oldMousePos = [e.pageX,e.pageY];
fieldMouseDown(oldMousePos,$(this));
});
function fieldMouseDown(oldMousePos,field) {
field.bind("mouseup",function(e) {
var newMousePos = [e.pageX,e.pageY];
console.log("oldMousePos: " + oldMousePos);
console.log("newMousePos: " + newMousePos);
if(oldMousePos == newMousePos) { console.log("Mouse did NOT move!") }
else if(oldMousePos != newMousePos) { console.log("Mouse MOVED!") }
$(this).unbind("mouseup");
});
}
このコードが常に "Mouse MOVED!" をログに記録するのはなぜですか? 実際には、「マウスアップ」イベントの前にマウスがクリックされただけで動かされていないのですか? コンソールでは、変数「oldMousePos」と「newMousePos」がまったく同じ座標を格納していることがわかります。マウスがドラッグされていない場合でも、「Mouse MOVED!」です。が記録されます。どうしてこれなの?