在同一页面/站点上选择2个多个版本

阿方索·戈麦斯(Afonso Gomes)

下午,

在一个网站上,我已经将使用select2 v.3.5.2的许多元素更新为新的v。4.0(并且其中一些元素在所有页面上显示的网站标题中)

不幸的是,在网站的某些页面上使用了X可编辑的jquery插件,并且该插件不能与select2 v 4.0配合使用(请阅读:一点也不玩)

我的问题是:在某些页面上可以同时使用两个版本的select2吗?

如果是这样,怎么办?因为$(...).select2();对加载select2的版本不了解。

示例代码:

    $("#search_species").select2({
        minimumInputLength: 1,
        maximumSelectionSize: 1,
        ajax: {
            url: "/php/search.php",
            dataType: 'json',
            delay: 250,
            data: function (params) {
                return {
                    query: params.term
                };
            },
            processResults: function (data, params) {
                return { results: data };
            },
            cache: true
        },
        escapeMarkup: function (markup) { return markup; },k

        templateResult: formatarResultados,
        templateSelection: formatarSeleccao,

    }).on("select2:selecting", function(e) {
        console.log(e);

        // window.location.href = e.params.args.data.url;
        // $('.select2-drop').hide();

    });
凯文·布朗

隔离Select2 4.0.0应该有可能(但不一定很容易)。隔离较旧的版本几乎是不可能的,因为它们依赖于全局变量,而Select2 4.0.0实际上是完全独立的(有一些例外)。

我猜您正在遇到类似于以下情况:

$(".select2").select2({
  ajax: {}
});
<link href="//cdnjs.cloudflare.com/ajax/libs/select2/4.0.0/css/select2.css" rel="stylesheet"/>

<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/select2/4.0.0/js/select2.js"></script>

<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/3.5.2/select2.css " rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/3.5.2/select2.js"></script>

<select class="select2">
  <option value="AL">Alabama</option>
  <option value="AK">Alaska</option>
  <option value="AZ">Arizona</option>
</select>

您可以看到Select2 4.0.0和3.5.2都装在同一个纸箱中,而3.5.2赢得了胜利。

但这可以通过$.fn.select2在加载插件后参考来解决然后,您可以直接调用此函数(使用.call()),也可以在需要时重新设置引用。个人建议直接调用该函数,以便其他插件不会因为您而中断。

myOwnSelect2.call($(".select2"), {
  ajax: {}
});

$(".select3").select2();
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.js"></script>

<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.0/css/select2.css " rel="stylesheet" />
<script src="//cdnjs.cloudflare.com/ajax/libs/select2/4.0.0/js/select2.js"></script>

<script>
  var myOwnSelect2 = $.fn.select2;
  delete $.fn.select2;
</script>

<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/3.5.2/select2.css " rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/3.5.2/select2.js"></script>

<select class="select2">
  <option value="AL">Alabama</option>
  <option value="AK">Alaska</option>
  <option value="AZ">Arizona</option>
</select>

<select class="select3">
  <option value="AL">Alabama</option>
  <option value="AK">Alaska</option>
  <option value="AZ">Arizona</option>
</select>

直接使用该功能的好处是Select2 3.x和4.x在同一页面上都可以正常工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从同一页面中的多个时钟选择器获取数据

来自分类Dev

具有 AJAX 的同一页面中的多个日期选择器

来自分类Dev

在同一页面中处理多个表单

来自分类Dev

在同一页面中定位多个星级

来自分类Dev

离子-同一页面中的多个视图

来自分类Dev

同一页面中的多个弹出div

来自分类Dev

在同一页面中加载多个内容

来自分类Dev

在同一页面添加多个星级

来自分类Dev

同一页面中的多个弹出窗口

来自分类Dev

Symfony 2多个表单位于同一页面中

来自分类Dev

Symfony 2多个表单位于同一页面中

来自分类Dev

同一页面上的多个jquery版本

来自分类Dev

我可以使用htaccess从同一页面获得2个链接吗?

来自分类Dev

我可以从htaccess的同一页面获得2个链接吗?

来自分类Dev

在同一页面中创建2个不同的标签

来自分类Dev

如何在同一页面中同步2个表单

来自分类Dev

从 2 个按钮重定向到同一页面

来自分类Dev

在德语站点上反复刮擦同一页面以查找不同的URL

来自分类Dev

在同一页面或同一站点上需要多个引导轮播,但它们的尺寸需要不同

来自分类Dev

当同一页面中有多个具有相同类的元素时,如何通过类选择 id

来自分类Dev

动作到同一页面而不是另一页面

来自分类Dev

一个搜索表单到同一页面中的 3 个 Gridview

来自分类Dev

登录页面,在同一页面检查密码

来自分类Dev

JqueryMobile页面内的同一页面导航

来自分类Dev

从下拉控件中选择后在同一页面中显示项目

来自分类Dev

在同一页面中显示HTML选择值

来自分类Dev

如何让用户在同一页面中选择不同的Facebook权限?

来自分类Dev

在同一页面中克隆选择框选项值

来自分类Dev

在同一页面中为多个输入提前输入twitter bootstrap

Related 相关文章

热门标签

归档