لا يمكنني الاختيار على ما يبدو : جاهز للإطلاق ، هل يمكن لأحد أن يؤكد ما إذا كان هذا الاستخدام صحيحًا أم خاطئًا؟
jQuery ('. chzn-select'). on ('selected : ready '، function () {
jQuery ('li'). ScrollText () ؛
}) ؛
".chzn-select" هي الفئة التي تم اختيارها مرتبطة قبل هذا الرمز.
شكرا
أعتقد أنك ببساطة تلزم المستمع بعد فوات الأوان (إذا ربطته بعد أن أصبح الاختيار جاهزًا ، فلن يرى الحدث). حاول ربط المستمع قبل تطبيق المختار
آه ، كان هذا جزءًا من الحل. كان هناك أيضًا سطر يفك كل الأحداث من المختار قبل إعداده والذي أزاله. أعتقد أنه تمت إضافة سطر إلغاء الربط بسبب الغرابة في asp.net وعمليات إعادة النشر.
شكرا على الرد السريع.
مغلق. : +1:
آسف لشيء آخر ، يجب أن أكون قادرًا على الحصول على الكائن المختار في هذه الوظيفة كما هو موضح أدناه ، هل هذا صحيح؟
jQuery ('. chzn-select'). on ('selected : ready '، function (selected) {
jQuery ('li'). ScrollText () ؛
}) ؛
أتطلع إلى الحصول على العنصر الجديد والقيام بشيء ما عندما تكون جاهزًا. هل الكائن المختار يحتوي على هذا؟ أرى أن الهدف له نتيجة ولكن هذا دائمًا غير محدد.
حسنًا ، سأغلق هذا مرة أخرى.
لقد عملت على أن هذا لن ينجح أبدًا. نظرًا لأنني أرغب في تطبيق حدث على كل خيار في القائمة المنسدلة المختارة ، إلا أن المشكلة هي أن الخيارات لم يتم إنشاؤها حتى يتم النقر فوق القائمة المنسدلة. لذلك يمكنني نقل الكود الخاص بي إلى الحدث " selected: show_dropdown ".
الوسيطة الأولى لمستمع الحدث هي دائمًا كائن الحدث. المعلمات هي الوسيطة الثانية: http://harvesthq.github.io/chosen/options.html#triggered -events
آه فاتني المعلمة الثانية. شكرا.
يجب ربط أحداثك باستخدام التفويض (مثل $().live()
الذي تم إيقافه) ، لأنه عندئذٍ لا يلزم أن تكون العناصر موجودة في الصفحة عند الربط:
$('.chosen-select').on('click', 'li', handlerFunction);
المزيد عن تفويض الحدث هنا: https://learn.jquery.com/events/event-delegation/
واجهت أيضًا مشكلة حيث اخترت: الاستعداد لم يكن إطلاقًا.
هذا لم ينجح:
$('select')
.chosen()
.on('chosen:ready', function(){
console.log('chosen:ready')
});
ولكن ربط الحدث قبل إنشاء مثيل تم تنفيذه:
$('select')
.on('chosen:ready', function(){
console.log('chosen:ready')
})
.chosen();
بدأ الحدث. لكن في الحالة الأولى ، من المحتمل أن المستمع الخاص بك قد تم تسجيله بعد تشغيله
@ stof توضيح جيد ، شكرا.
فقط أتساءل ولكن لماذا تم إنشاء عناصر القائمة في حدث "show_dropdown" بدلاً من الحدث "جاهز"؟
لم يتم إنشاء عناصر القائمة في chosen:showing_dropdown
.
يتم تشغيل chosen:ready
عندما يتم إنشاء النتائج ويكون Chosen جاهزًا لاستقبال الأحداث ، ويتم تشغيل chosen:showing_dropdown
بعد فتح Chosen.
إذن ما الذي تتساءل عنه؟ ؛)
دائمًا ما تكون قائمة "النتائج المختارة" فارغة حتى أقوم بتشغيل القائمة المنسدلة لفتحها. لقد وجدت طريقة أخرى لفعل ما كنت أفعله ، لكني كنت أشعر بالفضول قليلاً حول كيفية عمل ذلك.
التعليق الأكثر فائدة
واجهت أيضًا مشكلة حيث اخترت: الاستعداد لم يكن إطلاقًا.
هذا لم ينجح:
ولكن ربط الحدث قبل إنشاء مثيل تم تنفيذه: