Jquery Select2插件版本检查

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

if (jQuery().select2) 

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

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

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

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

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