Jquery Select2插件版本检查

Pao*_*ssi 7 jquery jquery-select2 jquery-select2-4

在我的项目中,我检查是否以这种方式加载了Select2插件

if (jQuery().select2)
Run Code Online (Sandbox Code Playgroud)

但现在我将尝试验证加载了哪种版本(3.5.X或4.X)的Select2插件.我想也许你可以检查版本4.X中是否有版本3.5.X中没有的选项/功能.据你说,它可行吗?我怎么能这样做?谢谢

小智 6

isOpenSelect2 4.0中有一种新方法.

您可以在开发人员工具栏中使用以下内容:

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

使用Select2 v3.5.3和v4.0.3进行测试


Mar*_*est 4

Select2 v3v4的事件不同!您可以简单地调用任一版本的事件来仅运行该版本的代码。如果事件不存在,它将被忽略。如果您需要在changev3 和 v4 共有的事件中进行测试,请查看以下代码:

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
    }
});
Run Code Online (Sandbox Code Playgroud)

PS 检查 jQuery 函数是否可用,isFunction派上用场。

var s2Exists = $.isFunction( $.fn.select2 );
Run Code Online (Sandbox Code Playgroud)