2

noConflict のいずれかのメソッドを実装する際に問題が発生します。何が起こっているのかわかりません。jQuery CDN は Angularjs CDN の前にロードされ、Jquery を使用しようとしているファイルも Angularjs ファイル (コントローラーなど) の前にロードされます。

これを実装しようとすると、jQuery関数は機能しません。

誰が何が起こっているのか知っていますか?

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript" src="../public/JS.js"></script>
<script src="../public/js/bootstrap.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.min.js"></script>
<script type="text/javascript" src="../public/javascript/comsumer.js"></script>
<script type="text/javascript" src="../public/javascript/controllers.js"></script>
<script type="text/javascript" src="../public/javascript/services.js"></script>
<script type="text/javascript" src="../public/javascript/directives.js"></script>

これは、ファイルが呼び出される順序です。

よろしくお願いいたします。

動作しないコード - すべて noConflict

<script type="text/javascript">
  $.noConflict();
  jQuery(document).ready(function($) {
  // Code that uses jQuery's $ can follow here.
  });
 // Code that uses other library's $ can follow here.
</script>

また

jQuery.noConflict();
 jQuery(".test").hide();

また

jQuery.noConflict();
 (function($) {
   $(function() {
     // more code using $ as alias to jQuery
      $(".test").hide();
   });
})(jQuery);
  // other code using $ as an alias to the other library

また

 var j = jQuery.noConflict();
   j(".test").hide();

最後に

var dom = {};
dom.query = jQuery.noConflict(true);
   dom.query(".test").hide();

何も機能していないようです。JS ファイルに入れましたが、jQuery 関数はトリガーされていません。

4

1 に答える 1

0

答えは私を正面から見つめていました。angularjs SPA が、jQuery を使用したい DOM 要素を持つビューを「注入」したという問題があるため、.noConflict() を引き続き使用して、このようなものを使用する必要がありました。

グローバル

<script type="text/javascript">
     var j = $.noConflict();
</script>

これはJSファイルで

j(document).off("click",".jtest",testclick ).on("click", ".jtest",testclick);

Jquery は、読み込まれたときに現在の DOM しか認識しないため、上記のソリューションを使用して挿入すると機能しました。

質問の詳細がもっと良かったはずです、私の悪い。

于 2013-08-02T08:39:40.647 に答える