javascript - 同时使用2个不同版本的Jquery

标签 javascript jquery

当我使用以下代码导入 2 个版本的 jQuery 时,jquery.1.12.4 可以工作,但 jquery.2.1.3 不起作用。

<script type='text/javascript' src='js/jquery.2.1.3.js'></script>
<script type="text/javascript">
    $213 = jQuery.noConflict();
</script>
<script type='text/javascript' src='js/jquery.1.12.4.js'></script>


jquery.1.12.4 的功能有效,但 jquery.2.1.3 的以下功能不起作用:

<script>
    $213(function() {
        var Accordion = function(el, multiple) {
            this.el = el || {};
            this.multiple = multiple || false;

            // Variables privadas
            var links = this.el.find('.link');
            // Evento
            links.on('click', {el: this.el, multiple: this.multiple}, this.dropdown)
        }

        Accordion.prototype.dropdown = function(e) {
            var $el = e.data.el;
                $this = $(this),
                $next = $this.next();

            $next.slideToggle();
            $this.parent().toggleClass('open');

            if (!e.data.multiple) {
                $el.find('.submenu').not($next).slideUp().parent().removeClass('open');
            };
        }   

        var accordion = new Accordion($('#accordion'), false);
    });
</script>

最佳答案

您可以尝试以下方法,如果您为两个版本都定义了'noConflict(),它应该可以工作

jQuery(document).ready(function() {
  $jquery_2_1(function(jQuery) {
    var Accordion = function(el, multiple) {
      this.el = el || {};
      this.multiple = multiple || false;

      // Variables privadas
      var links = this.el.find('.link');
      // Evento
      links.on('click', {
        el: this.el,
        multiple: this.multiple
      }, this.dropdown)
    }

    Accordion.prototype.dropdown = function(e) {
      var $el = e.data.el;
      $this = $(this),
        $next = $this.next();

      $next.slideToggle();
      $this.parent().toggleClass('open');

      if (!e.data.multiple) {
        $el.find('.submenu').not($next).slideUp().parent().removeClass('open');
      };
    }

    var accordion = new Accordion(jQuery('#accordion'), false);
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script type="text/javascript">
  $jquery_2_1 = jQuery.noConflict();
</script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>
<script type="text/javascript">
  $jquery_1_12 = jQuery.noConflict();
</script>

关于javascript - 同时使用2个不同版本的Jquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47376991/

相关文章:

javascript - 服务器端 JavaScript 或 Node.js 中的 Marklogic 结构化查询

javascript - 在响应表中,第二列值与第一列值重叠

javascript - 解释这个javascript函数声明 "jQuery(function($){}"

javascript - 无法访问函数内的地理位置

javascript - 仅在单选按钮上单击时显示 div

javascript - 在每个 <img> 之前添加元素 <a>

javascript - 表单提交前的 jQuery 验证

javascript - jquery 驼峰式实现

javascript - $(window).load 在 Firefox 中不显示图像

jquery - 使用 jQuery 通过按钮播放 Wistia 视频