Jquery Select2 插件版本检查

Posted

技术标签:

【中文标题】Jquery Select2 插件版本检查【英文标题】:Jquery Select2 plugin version check 【发布时间】:2016-06-13 21:50:30 【问题描述】:

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

if (jQuery().select2)

但现在我将尝试验证加载了 Select2 插件的哪种版本(3.5.X 或 4.X)。我想也许您可以检查版本 4.X 中是否引入了版本 3.5.X 中不存在的选项/功能。 在你看来,可行吗?我该怎么做?谢谢

【问题讨论】:

【参考方案1】:

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

【讨论】:

我的朋友,你节省了我的时间【参考方案2】:

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

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
    
);

附:要检查 jQuery 函数是否可用,isFunction 会派上用场。

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

【讨论】:

以上是关于Jquery Select2 插件版本检查的主要内容,如果未能解决你的问题,请参考以下文章

Select2插件ajax方式加载数据并刷新页面数据回显

检查插件是不是已在 jQuery 中初始化?

在select2 jquery插件中没有调用initSelection

如何使用 jQuery 验证插件验证 Select2 插件数组

select2 jquery插件重置具有预选项目的选择元素

ajax调用HTML内容更改后select2 jquery插件不起作用