Проверка версии плагина Jquery Select2

В моем проекте я проверяю, был ли загружен плагин Select2 таким образом

if (jQuery().select2)

Но теперь я попытаюсь проверить, какая версия (3.5.X или 4.X) плагина Select2 была загружена. Я подумал, может быть, вы могли бы проверить, есть ли опция/функция, представленная в версии 4.X, которой нет в версии 3.5.X. По-вашему, это выполнимо? Как я могу это сделать? Спасибо


person Paolo Rossi    schedule 01.03.2016    source источник


Ответы (2)


В Select2 4.0 появился новый метод isOpen.

Вы можете использовать что-то вроде этого на панели инструментов разработчика:

try {
    $("#a-select2-element").select2('isOpen');
    'select2 v4.x';
} catch(e) {
    'select2 v3.x';
} 

Протестировано с Select2 v3.5.3 и v4.0.3

person Pavel K    schedule 13.02.2017
comment
Тай мой друг, ты экономишь мои часы - person plonknimbuzz; 05.07.2018

События различаются для Select2 v3 и v4! Вы можете просто вызвать события любой версии, чтобы запустить код только для этой версии. Если событие не существует, оно будет проигнорировано. Если вам нужно протестировать событие change, которое объединяет версии 3 и 4, взгляните на приведенный ниже код:

var $el = $('#your-element'),
    s2Version3 = false,
    s2Version4 = false;

$el.on( 'select2:opening', function() {
    // this event only works for v4
    s2Version4 = true;
});

$el.on( 'select2-opening', function() {
    // this event only works for v3
    s2Version3 = true;
});

$el.on( 'change', function() {
    if ( s2Version3 ) {
        // change things for v3
    } else {
        // change things for v4
    }
});

P.S. Чтобы проверить, доступна ли функция jQuery, пригодится isFunction.

var s2Exists = $.isFunction( $.fn.select2 );
person Marc Wiest    schedule 23.09.2016