سؤال

أحاول ربط حدث بـ "طريقة" لمثيل معين من "فئة" Javascript باستخدام jQuery.الشرط هو أنني في معالج الحدث يجب أن أكون قادرًا على استخدام الكلمة الأساسية "هذا" للإشارة إلى المثيل الذي ربطت الحدث به في الأصل.

بمزيد من التفاصيل، لنفترض أن لدي "فصل" على النحو التالي:

function Car(owner) {
  this.owner = owner;
}
Car.prototype = {
  drive: function() {
    alert("Driving "+this.owner+"s car!");
  }
}

ومثال:

var myCar = new Car("Bob");

أريد الآن ربط حدث بـ "طريقة" محرك الأقراص في سيارتي بحيث يتم استدعاء "طريقة" محرك الأقراص عند النقر فوق زر على سبيل المثال في مثيل myCar الخاص بـ "فئة" السيارة.

حتى الآن كنت أستخدم الوظيفة التالية لإنشاء إغلاق يسمح لي بالوصول بشكل مريح إلى أعضاء المثيل باستخدام الكلمة الأساسية "هذا" في "أساليبي".

function createHandler( obj, method ) {
  return function( event ) {
    return obj[method](event||window.event);
  }
}

لقد استخدمته على النحو التالي:

document.getElementById("myButton")
  .addEventListener("click", createHandler(myCar,"drive"));

كيف يمكنني تحقيق شيء مثل هذا باستخدام JQuery؟

أنا أسأل على وجه التحديد عن ربط "هذا" بمثيل معين، والأمر الآخر الذي يمكنني التعامل معه في كل مكان بمفردي.

هل كانت مفيدة؟

المحلول

فقط استخدم وظيفة مجهولة:

$("#myButton").click(function() { myCar.drive(); });

نصائح أخرى

جرب هذا :

$("#myButton").each(function() {

var $btn = $(this);

    $btn.on('click',function(){

     // Do whatever you want.

    });
});

هنا تقوم أولاً بإنشاء حلقة لاستهداف جميع عناصر #myButton (وهذا خطأ في المثال الخاص بك، يجب أن تستخدم Class بدلاً من ذلك) مثل:

$(".myButton").each(...

ثم نعلق معالج حدث النقر عليهم جميعًا.

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