في الآونة الأخيرة ، في المشروع ، تحتاج إلى إعطاء أحداث ربط العناصر ديناميكيًا إلى JS. لم تستخدم هذه من قبل. بالمناسبة ، يمكنك التعرف على ذلك. لذلك يمكنك Google الأحداث وكتبت الحدثين التاليين ، ويضيف أحدهما الأحداث والآخر هو إزالة الأحداث.
/AddEventListener () ، يتم استخدام RemoveEventListener () للتعامل مع عمليات تحديد وحذف معالجات الأحداث // Scope: سيتم تشغيل معالج الأحداث ضمن نطاق عنصره. // addeventListener (الحدث ، الوظيفة ، الالتقاط/الفقاعة) ؛ REFEMEVENTERListener (الحدث ، الوظيفة ، الالتقاط/الفقاعة) // يتم عرض حدث المعلمة في الجدول أعلاه. الوظيفة هي الوظيفة المراد تنفيذها. التقاط والفقاعة هي أوضاع مرتين صاغها W3C. // بشكل أبسط ، يتم التقاط السطر الأخير من بداية المستند ، ثم تنفيذ الحدث. تجد Bubble أولاً الموضع المحدد ثم ينفذ الحدث. // معلمات الالتقاط/الفقاعة هي قيم منطقية ، والوسائل الحقيقية لاستخدام الالتقاط ، false هو وظيفة الفقاعة addEvent () {var obj = document.getElementById ("txtiatacity") ؛ if (window.addeventListener) {// رموز الأحداث للمتصفحات الأخرى: Mozilla ، Netscape ، Firefox // ترتيب الأحداث المضافة هو ترتيب التنفيذ // ملاحظة تضيف أحداثًا مع استخدام AddEventListener ، دون إضافة Obj.addeventListener ('focus' ، function () {test ('aa')}}. } آخر {// يقوم رمز الحدث الخاص بـ ie بإضافة طريقة إضافة OBJ.attachevent ('onfocus' ، function () {test ('aa')}) ؛ }} function removeEvNent () {var obj = document.getElementById ("txtiatacity") ؛ if (window.removeeventListener) {obj.RemoveEventListener ('focus' ، function () {test ('aa')} ، false) ؛ } آخر {obj.detachevent ('onfocus' ، function () {test ('aa')}) ؛ }}عند تحميل الصفحة ، يتم استدعاء الطريقة أعلاه إلى حدث ربط الإدخال. يتم إضافة الاختبار بنجاح ، لكن الإزالة لم تنجح أبدًا. لذلك بحثت عن مواد مرجعية عبر الإنترنت
// الأحداث التي تمت إضافتها من خلال AddEventListener () لا يمكن إزالة إلا عن طريق removeEventListener (). يتم ذلك. هناك جملة أخرى أدناه: // الوظيفة المجهولة التي تمت إضافتها بواسطة AddEventListener () عند عدم إزالة الإزالة. تم العثور على المشكلة. Function () {test ('aa')} // غير صالحة ، لأن الطرق التي تم تمريرها في addeventListener () و removeEventListener () ليست هي نفس الطريقة ، لذلك يتم اقتراح اختبار ('aa') وكتابته على أنه اختبار الوظيفة (msg) {Alert (msg)} إعادة كتابة وظيفة addevent () {var obj = document. if (window.addeventListener) {// رموز الأحداث للمتصفحات الأخرى: Mozilla ، Netscape ، Firefox // ترتيب الأحداث المضافة هو ترتيب التنفيذ // الملاحظة التي تضيف الأحداث مع استخدام AddeventListener ، دون إضافة Obj.addeventListener ('Focus' ، test ('msg')} ، false) ؛ } else {// يقوم رمز الحدث الخاص بـ IE بإضافة طريقة إضافة OBJ.attachevent ('onfocus' ، test ('msg')}) ؛ }} function removeEvNent () {var obj = document.getElementById ("txtiatacity") ؛ if (window.removeeventListener) {obj.RemoveEventListener ('Focus' ، test ('msg')} ، false) ؛ } آخر {obj.detachevent ('onfocus' ، test ('msg')) ؛ }}وبالتالي فإن تطبيق IE Execution: يبدو أن عدم تطابق النوع لا يدعم الوظائف بالمعلمات ، لذلك يتم تغليف الوظيفة في نموذج بدون معلمة مرة أخرى.
التنفيذ أو الإضافة نجح أو إزالة أو الفشل. بعد البحث عبر الإنترنت لفترة طويلة ، كدت أن كتبت بهذه الطريقة وكانت ناجحة. لا أعرف لماذا لم أستطع إزالة لي.
في وقت لاحق ، رأيت أن jQuery تمت الإشارة إليه في الأصل على الصفحة ، لذلك استخدمت أحداث Bind and Unfind of JQuery لتحقيق النجاح.
للأسف ، دعنا نحل هذه المشكلة عند الانتهاء من المشروع.
طريقة التنفيذ الديناميكية JS أعلاه لإضافة وإزالة الأحداث إلى العناصر هي كل المحتوى الذي أشاركه معك. آمل أن تتمكن من إعطائك مرجعًا وآمل أن تتمكن من دعم wulin.com أكثر.