كيفية استنساخ مسج الاستماع المساعد الحدث ؟
-
21-08-2019 - |
سؤال
لدي بعض <tr>
العناصر على الصفحة مع click()
الحدث تعلق على الصورة التي يجلس داخل كل واحدة.أنا استخدم هذا الكود
$(this).clone(true).appendTo("table#foo");
إلى القيام بما يلي:
- نسخ تلك
<tr>
s في جدول مختلف - الحفاظ على فوق الأحداث على الصور داخل
<tr>
s (بسببtrue
الحجة)
كل ذلك يعمل بشكل جيد.الآن لدي إضافة مسج اسمع الحدث إلى تلك <tr>
s, حتى أن المستخدم لا يجب أن تهدف على وجه التحديد:وقال انه/انها يمكن انقر في أي مكان على <tr>
وأنا يمكن أن تمر انقر على الصورة.
انها مشفرة مثل هذا:
$('tr.record').listen('click','td',function(){
$(this).parent().find("img.clickable").click();
});
الاستماع() الحدث يعمل بشكل جيد على العنصر الأصلي ، ولكن على المستنسخة البند الاستماع() حدث فشل. الصورة انقر فوق الحدث لا يزال يعمل بشكل جيد.
هنا هو ما الحرائق يقول لي:
m(this, e.type) is undefined
و يشير السطر 9 من jquery.listen-1.0.3-min.js.
كيف يمكنني الاستماع() الحدث عمل على استنساخ العناصر ؟
التحديث
بشكل افتراضي, مسج لا نسخ الأحداث على المستنسخة العناصر ، ولكن هذا البرنامج المساعد هو فعل ذلك.
وفي الوقت نفسه صاحب الاستماع() المساعد اقترح استراتيجية مختلفة - انظر جوابي أدناه.
المحلول
ارييل Flesler خالق الاستماع() المساعد, قدم لي هذه النصيحة عبر البريد الإلكتروني:
"أعتقد أن هذا يمكن حلها بطريقة أخرى.فكرة الاستماع (و الحدث الوفد) هو في الواقع تجنب جميع النسخ من الأحداث عناصر جديدة."
"يمكنك أن تفعل ببساطة:"
$('table#foo').listen('click','td',function(){
$(this).parent().find("img.clickable").click();
});
"أو حتى:"
$.listen('click','td',function(){
$(this).parent().find("img.clickable").click();
});
"المثال الأول سوف استخدم الجدول كما المستمع.في واحد 2 ،
<html>
الوسم يستخدم.لذلك لا يهم إذا قمت بإضافة جديدة td/tr/الجداول.سوف
لا تزال تعمل."