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

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

if (jQuery().select2)

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

【问题讨论】:

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


    【解决方案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 v3v4 的事件不同!您可以简单地调用任一版本的事件来仅为该版本运行代码。如果事件不存在,它将被忽略。如果您需要在 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 );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-26
      • 2014-07-31
      相关资源
      最近更新 更多