Chosen: المختار: جاهز لا يطلق النار

تم إنشاؤها على ٣ أبريل ٢٠١٤  ·  14تعليقات  ·  مصدر: harvesthq/chosen

لا يمكنني الاختيار على ما يبدو : جاهز للإطلاق ، هل يمكن لأحد أن يؤكد ما إذا كان هذا الاستخدام صحيحًا أم خاطئًا؟

jQuery ('. chzn-select'). on ('selected : ready '، function () {
jQuery ('li'). ScrollText () ؛
}) ؛

".chzn-select" هي الفئة التي تم اختيارها مرتبطة قبل هذا الرمز.

شكرا

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

واجهت أيضًا مشكلة حيث اخترت: الاستعداد لم يكن إطلاقًا.

هذا لم ينجح:

$('select')
    .chosen()
    .on('chosen:ready', function(){
        console.log('chosen:ready')
    });

ولكن ربط الحدث قبل إنشاء مثيل تم تنفيذه:

$('select')
    .on('chosen:ready', function(){
        console.log('chosen:ready')
    })
    .chosen();

ال 14 كومينتر

أعتقد أنك ببساطة تلزم المستمع بعد فوات الأوان (إذا ربطته بعد أن أصبح الاختيار جاهزًا ، فلن يرى الحدث). حاول ربط المستمع قبل تطبيق المختار

آه ، كان هذا جزءًا من الحل. كان هناك أيضًا سطر يفك كل الأحداث من المختار قبل إعداده والذي أزاله. أعتقد أنه تمت إضافة سطر إلغاء الربط بسبب الغرابة في 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.

إذن ما الذي تتساءل عنه؟ ؛)

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

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