هل من الممكن الحصول على قائمة الأحداث التي ترتبط بعنصر في مسج؟
سؤال
كما قال السؤال، أحتاج إلى قائمة الأحداث التي ترتبط بعنصر معين.
أعني الأحداث مثل النقر، 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.
}
}
لا تنتمي إلى StackOverflow