jQuery与Prototype冲突(noconflict不起作用)

jQuery conflict with Prototype (noconflict doesnt work)

本文关键字:noconflict 不起作用 冲突 Prototype jQuery      更新时间:2023-09-26

我使用jQuery v1.6.4http://code.jquery.com/jquery-1.6.4.js和原型。

我正在尝试使用jQueryTabs小部件,但它与原型冲突。因此,输入的上传按钮不起作用。

我试着解决这个问题,但似乎不起作用。

<script type="text/javascript">
  jQuery.noConflict();
  _ccsjQ(function() {
    _ccsjQ( "#tabs" ).tabs();
  });
</script>

有趣的是,如果我按F5,上传按钮就可以工作,而当我刷新时,就不工作了。

简单的方法(IMHO)就是调用jQuery.noConflict(),然后将任何jQuery代码封装在一个匿名函数中:

jQuery.noConflict();
(function($){
  // use your standard $(...) in here
})(jQuery);

或者,如果不打算使用jQuery(...)(例如,var jq = jQuery.noConflict();然后使用jq(...)),则需要为jQuery分配一个新别名。

两者都使用的示例:

    <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
    <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/prototype/1.7.1.0/prototype.js"></script>
    <script type="text/javascript">
        var _cssjQ = jQuery.noConflict();
        _cssjQ('.foo').css('color','#f0f');
        (function($){
            $('.bar').css('color','#f0f');
        })(jQuery);
    </script>

小提琴:http://jsfiddle.net/kbWah/1/

1)定义Jquery第一个

<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

2) 在Jquery之后和原型之前添加脚本

<script>
  var pjquery = jQuery.noConflict();//pjquery will represent jquery framework now on-wards
</script>

3) 现在定义prototype.js

<script type = "text/javascript" src = "js/prototype.js" ></script>

现在,在要调用jquery的地方,使用pjquery而不是$Jquery