Angularjs和jQuery $ .noConflict()

时间:2013-08-01 20:13:42

标签: javascript dom angularjs jquery

在实现noConflict的任何方法时遇到一些问题。 我不确定发生了什么,jQuery CDN在Angularjs CDN之前加载了我尝试在任何Angularjs文件(控制器等)之前加载Jquery的文件。

尝试实现此功能时,没有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函数触发

1 个答案:

答案 0 :(得分: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,因此使用上面的解决方案进行注入。

问题的细节应该更好,我的不好。