كيف يمكنني الحصول على موضع الماوس مع JavaScript؟

StackOverflow https://stackoverflow.com/questions/3466373

  •  28-09-2019
  •  | 
  •  

سؤال

اريد الحصول على الماوس x و ذ تنسيق من خلال جافا سكريبت. لقد حاولت Pagex, صفحة, ClientX, العملاء, ، ولكن لا يتم عرض شيء. لقد اختبرت هذا على كل من IE و Firefox.

هل هناك شيء ما أفعله خطأ في الحدث التالي؟

var x=0;
var y=0;
function mouseDown(){
    alert("This is displayed");
    evt=event||window.event;
    alert(evt.clientX);
        alert(evt.clientY);
            alert(evt.pageX);
                alert(evt.pagey);
    alert("Flow doesn't reach here...");            
}
هل كانت مفيدة؟

المحلول

نعم - تحتاج أيضًا إلى ربط الوظيفة كمعالج حدث.

يجب أن يأخذ الحدث الخاص بك معلمة حدث:

function mouseDown(event) {

ثم تحتاج إلى إخبار المتصفح بالاتصال بوظيفتك عند حدوث الحدث:

document.onmousedown = mouseDown;

نصائح أخرى

إنه لا يعمل لأنك لا تستمع إلى أي أحداث. تحتاج إلى تمرير هذه الوظيفة عند حدوث أي أحداث ماوس. جرب الكود الخاص بي أدناه .. يحصل على الموقف عند النقر

function getPos(evt) {
 evt = event || window.event;
 return {x:evt.clientX,y:evt.clientY};
}

الآن يمكنك فقط استدعاء هذه الوظيفة داخل مستمع حدث مثل هذا.

addEventListener( 'click' , function(event) {
  var mousex = getPos(event).x;
  Var mousex = getPos(event).y;

  alert(mousex);alert(mousey);
});

استخدم jQuery ، هنا هو مثال جيد على كيفية تنفيذه.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top