Angular.js: يؤدي النقر فوق العنصر الفرعي إلى تشغيل النقر ng-click الخاص به كما يؤدي النقر فوق العنصر الأبوي أيضًا

تم إنشاؤها على ٣ ديسمبر ٢٠١٣  ·  9تعليقات  ·  مصدر: angular/angular.js

إذا كان لدي <div> مع ng-click ثم <button> بالداخل مع ng-click منفصل ، فإن النقر على الزر سيؤدي إلى إطلاق كلا ng-click معالجات.

لقد وجدت العلاقات العامة القديمة لـ Igor لهذا (# 31!) ولكن يبدو أن stopPropagation() الذي أضافه قد فقد في مكان ما بينهما.

حاولت التقسيم ، لكن وجدت أنه لا يعمل في 1.2.3 ، أو master ، أو 1.1.5 ، أو 1.1.3 ، أو 1.0.6 ، أو 1.0.3. حاولت التقسيم بين التزام السيد وإيجور في العلاقات العامة أعلاه ، لكن التغييرات أصبحت قديمة جدًا (0.10.x) لدرجة أن تطبيق الاختبار الخاص بي لن يعمل على الإطلاق.

حالة اختبار بسيطة لإعادة إنتاج هذا على Plunkr .

التعليق الأكثر فائدة

ما عليك سوى إضافة Child div عند النقر فوق الحدث

ال 9 كومينتر

يبدو أنه تمت إزالة المكالمة stopPropagation() بواسطة 1752c8c44a7058e974ef208e583683eac8817789.

tbosch ، يرجى اتخاذ قرار بشأن ما إذا كان هذا يعمل كما هو متوقع أو إذا كان هناك شيء يمكننا القيام به للتعامل مع هذا الموقف.

لا يمكننا إيقاف التكاثر افتراضيًا لأنه لن تكون هناك طريقة لإيقافه.

هناك حالات استخدام صالحة لعدم إيقاف الانتشار.
سيؤدي إيقاف التكاثر إلى جعل حالات الاستخدام هذه غير ممكنة ، حيث لا يمكننا إلغاء إيقاف التكاثر.

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

هذا ممكن الآن ، شاهد هذا الشرير: http://plnkr.co/edit/jVIovi0L9Hgo1Bl9t72O؟p=preview

إغلاق هذا كما هو متوقع.

ما عليك سوى إضافة Child div عند النقر فوق الحدث

gomteshhatgine على الهاتف المحمول أو الأيوني لم يعمل. تجعل نقرات الأطفال غير نشطة أيضًا.

gomteshhatgine في حالتي ، لا يزال يتم تشغيله أثناء أداء الوالدين. هل لديك نهج آخر؟

maceonrails لا أعرف شيئًا عن الهاتف المحمول الذي لم

xenogew يجب أن يعمل
هل يمكنك مشاركة مقتطف الشفرة من فضلك؟

تضمين التغريدة لقد عمل.

لا يعمل بعد الآن

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات