Jquery Select2插件版本检查

时间:2016-03-01 12:57:27

标签: jquery jquery-select2 jquery-select2-4

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

[[NSFileManager defaultManager] createFileAtPath:path contents:urlData attributes:nil];` with `[urlData writeToFile:path atomically:YES];

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

2 个答案:

答案 0 :(得分:5)

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进行测试

答案 1 :(得分:4)

Select2 v3&的事件不同v4!您可以简单地调用任一版本的事件来仅运行该版本的代码。如果事件不存在,则将被忽略。如果您需要在change事件中进行测试,那么v3& 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
    }
});

P.S。要检查jQuery函数是否可用,isFunction会派上用场。

var s2Exists = $.isFunction( $.fn.select2 );