Событие select2-selecting не запускается

Я использую Select2 на своем веб-сайте и пытаюсь использовать событие select2-selecting, но он не стреляет. Я также использую Backbone.js в приложении, поэтому первое, что я попробовал, это добавить select2-selecting к моему объекту events:

// 'change .city':'cityChanged'
'select2-selecting .city':'cityChanged'

Обратите внимание, что у меня закомментировано событие change — это событие change работает правильно. В документации для Select2 событие select2-selecting размещается непосредственно на объекте, а не так:

$('.city').select2().on('select2-selecting', function(e){ 
     console.log('here');
});

вместо этого его предполагается использовать следующим образом:

$('.city').on('select2-selecting', function(e){ 
     console.log('here');
});

Я также пытался добавить событие обоими этими способами, но событие не сработало (я проверил, и элемент был создан в DOM до добавления событий).

Когда я добавляю событие в первый метод с помощью Backbone.js, событие отображается в прослушивателях событий в chrome. консоль отладки - она ​​просто не запускается. Кто-нибудь знает, что происходит?


person coder    schedule 09.07.2013    source источник


Ответы (3)


какую версию select2 вы используете?

У меня была та же проблема, пока я не понял, что использую версию 3.3, где этого события select2-selecting не существует.

Это было включено в версию 3.4.

person Jmirancid Pes    schedule 10.07.2013
comment
я использую select2 3.4.3, и у меня такая же проблема, ни одно из событий не запускается !! - person Youssef Boudaya; 12.06.2019

В более ранних версиях также было изменение, когда он меняет имя:

  • select2-close теперь select2:close
  • select2-open теперь select2:open
  • select2-opening теперь select2:opening
  • select2-selecting теперь select2:selecting
  • select2-removed теперь select2:removed
  • select2-removing теперь select2: unselecting
person Santi Iglesias    schedule 05.10.2015
comment
Это правильно для 3.5, не знаю, почему в документации этого нет..... - person NDM; 09.03.2016

В еще более старых версиях события 'select2-removed' и 'select2-removing' перечислены в @santi-iglesias' ответ не существует. Вместо этого вы указали «удален». Кроме того, чтобы получить затронутое значение опции, используйте 'event.val'.

Итак, вы можете сделать что-то вроде этого:

$('.select').on('select2-selecting removed', function(evt) {
    var value = evt.val; //do something with this
});

Проверено на v3.4.3.

person Kaique Garcia    schedule 16.03.2017