هل من الممكن الحصول على قائمة الأحداث التي ترتبط بعنصر في مسج؟

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

سؤال

كما قال السؤال، أحتاج إلى قائمة الأحداث التي ترتبط بعنصر معين.

أعني الأحداث مثل النقر، Mouseover وما إلى ذلك المنضمل لهذا العنصر عند تحميل DOM.

(غبي) مثال:

$("#element").click(function()
{
    //stuff
});
$("#element").mouseover(function()
{
    //stuff
});
$("#element").focus(function()
{
    //stuff
});

نتيجة:

انقر، ماوسوفر، التركيز

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

المحلول

يضاف كل حدث إلى صفيف.

يمكن الوصول إلى هذه الصفيف باستخدام طريقة بيانات JQuery:

$("#element").data('events')

لتسجيل جميع أحداث كائن واحد إلى Firebug فقط النوع:

console.log ( $("#element").data('events') )

وستحصل على قائمة بجميع الأحداث المحددة.


تحديث:

ل jQuery 1.8. وزيادة عليك النظر في كائن بيانات المسك الداخلية:

$("#element").each(function(){console.log($._data(this).events);});
// or
console.log($._data($("#element")[0]).events);

نصائح أخرى

يمكنك الوصول إليها element.data('events');. وبعد مثال:

var events = element.data('events');
for (var type in events) {
    // `type` is "click", "mouseover", "change", etc.
    for (var handler in events[type]) {
        // `handler` is the associated function.
    }
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top