2017-11-19 13 views
0

次のコードを使用して2つのバージョンのjQueryをインポートすると、jquery.1.12.4が動作しますが、jquery.2.1.3は機能しません。jQueryの2バージョンからの使用が動作しません

jquery.2.1.3から jquery.1.12.4作品が、次の関数の機能は動作しません
<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> 


<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> 
+0

なぜ2つのバージョンのjQueryが必要ですか? –

+0

''コンソール 'にエラーがありません。 –

+0

古いスクリプトのフォールバックとの互換性のために、この2つのバージョンを使用していますか? –

答えて

1

あなたは両方のバージョン

ため '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>

+0

は私のためには機能しません! –

+0

'console'の' exception'または 'errors' –

+0

上記のスクリプトを参照してください。利用可能なjqueryのバージョンで、あなたのOPにhtmlコードを追加してテストすることができますか? –

関連する問題