jquery prototype 冲突 2种解决方法

张映 发表于 2013-05-03

分类目录: nodejs/vue/js/jquery

标签:, ,

jquery和prototype怎么会冲突,归根到底就是因为他们二个都用到了$,同时用,混淆了。这个问题解决过不下5次,每次解决都要查一下。淡疼,嘿嘿。

方法一,在jquery的核心库文件中加代码。

1,一般是jquery.js,或者jquery.min.js,有的带版本号的。知道是哪个文件就行。

})( window );
jQuery.noConflict();     //最后面,加上这一行。

2,加载测试jquery和prototype文件

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/prototype/1.7.1.0/prototype.js"></script>
<script src="jquery.min.js"></script>

3,js代码写法

<script type="text/javascript">
alert('prototype value : '+$('test').value);      //prototype写法
jQuery(document).ready(function($){               //注意这里的,jQuery和$
    alert('jquery value : '+$('#test').val());    //jquery写法
});
</script>

推荐这种方法,这种方法比较一劳永逸,请看:demo

方法二,在调用jquery的地方,解决冲突

1,加载测试jquery和prototype文件

//jquery和prototype,没有先后顺序,谁先谁后都一样。

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/prototype/1.7.1.0/prototype.js"></script>

2,js代码

<script type="text/javascript">
jQuery.noConflict();                             //解决冲突,这个一定要放在js代码的最前面,不然就会报错了。
alert('prototype value : '+$('test').value);
jQuery(document).ready(function($){
    alert('jquery value : '+$('#test').val());
});
</script>

这种方法比较适合,jquery的核心源文件,不在自己的服务器上,或者jquery代码比较少的情况。请看:demo



转载请注明
作者:海底苍鹰
地址:http://blog.51yip.com/jsjquery/1516.html