问题背景: 想用 jQuery 做 AJAX 处理, 用基于 Prototype 的 EasyValidation 做表单验证, 但是二者不能共存, 因为都用了同一个方法名: $().
解决:
<script type=”text/javascript”> jQuery.noConflict(); </script>
本人测试通过的方式:
1、将jquery.js放到prototype.js前面(这个是必须的!)。
2、在jquery.js后面将$变量重命名。
方法如下:
<script type="text/javascript" src="jquery.js"></script> <script type="text/javascript"> var jQuery=$; </script> <script type="text/javascript" type="text/javascript" src="window.js"></script> <!--上面这个window.js调用了jquery框架的方法--> <script type="text/javascript" type="text/javascript" src="prototype.js"></script>
3、将原来使用的$方法名一律替换为jQuery名,如$("obj")替换为jQuery("obj")。
例如下面的一段代码, 混合了 jQuery和基于Prototype的 EasyValidation:
<!-- jquery, 注意加载顺序 --> <script src="js/jquery-1.2.6.pack.js"></script> <script type=”text/javascript”> var jQuery=$; </script> <!-- 表单验证 --> <script src="easy_validation/lib/prototype.js" type="text/javascript"></script> <script src="easy_validation/lib/effects.js" type="text/javascript"></script> <script src="easy_validation/src/validation_cn.js" type="text/javascript"></script> <link rel="stylesheet" type="text/css" href="easy_validation/styles/style_min.css" /> <div id="contents"></div> <script> jQuery(document).ready(function(){ //jQuery("#contents").load("test.jsp"); jQuery("#contents").load("test.jsp?username=BeanSoft") }); </script> <!-- 为form增加required-validate class,标识需要验证form --> <form id='helloworld' action="#" class='required-validate'> <input name="user.name" class="required min-length-6 max-length-20 validate-alphanum" value="beansoft"> *密码: <input name="user.password" type="password" class="required min-length-6 max-length-20" value="123456" > *密码(重复): <input name="password1" type="password" class="required equals-user.password" value="123456" > <input type='submit' value='Submit'/> <input type='reset' value='Reset'/> </form>
相关推荐
知道了原因就想办法解决吧,总不至于让我脱离jquery重新写一遍吧,去网上狂搜了一番终于找到了一些解决办法,这就是: 1、将jquery.js放到prototype.js后面(这个是必须的否则无论如何还是要罢工地)。 2、在jquery....
本文实例分析了jQuery prototype冲突的2种解决方法。分享给大家供大家参考,具体如下: jquery和prototype怎么会冲突,归根到底就是因为他们二个都用到了$,同时用,混淆了。这个问题解决过不下5次,每次解决都要查...
下面以引入两个库文件 jquery.js和prototype.js为例来进行说明。 第一种情况:jquery.js在prototype.js之后进行引入,如: <</span> script src = ” prototype.js ” type = ” text/javascript ” /> <...
学习jQuery 必备的一些代码和方法,相信学习了本文,你可以对jQuery的学习更加容易。...2. 解决jQuery, prototype共存,$全局变量冲突问题: <script src="prototype.js"></script> <script
在使用jQuery开发的时候,可能还会使用到其他的JS库,比如Prototype,但多库共存时可能会发生冲突,下面这篇文章主要给大家介绍了关于jQuery库冲突的完美解决办法,需要的朋友可以参考借鉴,下面来一起看看吧。
冲突的原因是jquery给一个object增加了很多元素,那么在Object.prototype.toJSONString = function () 这个函数中 for (k in this) 语句中进行了无数次的循环,导致网页很卡,并且在IE中会报错。 解决方案: 根本...
在Jquery中,$是JQuery的别名,...下面以引入两个库文件jquery.js和prototype.js为例来进行说明。 第一种情况:jquery.js在prototype.js之后进行引入,如:[removed] <script src=”jquery.js” type=”text/javascr
Object.prototype.toJSONString) { 这一段代码,然后把里面的内容全部注释掉。(参考:注释掉496-737行) 2.2 加入新的JSON支持方法 function objToJSONString(obj, filter){ return JSON.stringify(obj, filter...
通常,全局对象都被很好地存储在 jQuery 命名空间里,因此当把 jQuery 和其他 JavaScript 库(例如 Prototype、MooTools 或 YUI)一起使用时,不会引起冲突。 注意:默认情况下,jQuery 用 $ 作为自身的快捷方式。 1...
jQuery 1.5(2011年1月31日):该版本修复了83个bug,解决了460个问题。重大改进有:重写了Ajax模块;新增延缓对像(Deferred Objects);jQuery替身——jQuery.sub();增强了遍历相邻节点的性能;jQuery开发团队构建...
在Jquery中,$是JQuery的别名,...下面以引入两个库文件jquery.js和prototype.js为例来进行说明。 第一种情况:jquery.js在prototype.js之后进行引入,如: [removed] <script src=”jquery.js” type=”text/javas
jQuery 使用 $ 符号作为 jQuery 的简介方式。某些其他 JavaScript 库中的函数(比如 Prototype)同样使用 $ 符号。
10.5 解决jQuery库与其他库的冲突/326 10.5.1 jQuery在其他库前导入/326 10.5.2 jQuery在其他库后导入/328 10.6 使用子查询优化选择器性能/330 10.7 减少对DOM元素直接操作/332 10.8 正确区分DOM对象与jQuery...
大概 580行到590行之间 这个句用于格式化json,他重写了object的结构,导致于js框架冲突,如果要解决需要把这段代码注释掉,然后用别的方式替换。 我是将所有用到*.toJSONString的地方,替换成一个函数,例如: /js/...
jQuery.fn就是jQuery.prototype为了省略字符; function JQuery(){ return new Jquery.prototype.init(); } Jquery.prototype.init=function(){}; jQuery.prototype.css=functioin(){}; Jquery.pr
jQuery 使用名为 noConflict() 的方法来解决该问题。 var jq=jQuery.noConflict(),帮助使用自己的名称(比如 jq)来代替 $ 符号。 代码如下: <html> <head> [removed][removed] [removed] var jq=...
本文主要介绍jQuery中$符号命名冲突的解决方法,希望能帮到大家,有需要的朋友可以参考一下。