如何优雅的解决velocity与jquery的冲突

2025-04-06 18:21:13
推荐回答(2个)
回答1:

1.jquery和velocity冲突
如js中的$.ajax,会被识别为velocity对象,这样velocity会抛出异常
解决办法:将 $.ajax改为jQuery.ajax
2.validate插件
$(document).ready(function(){
$("#commentForm").validate();
});
commentForm为form对应的ID
input对应的class为验证方法,如:class="required",class="required email"等,
可通过设置title来显示错误信息
也可以自定义validate,这样可以使input能干干净净的,如:
$(document).ready(function(){
var validator = $("#commentForm").validate({
rules: {
name: "required"
},
messages:{
required:"必填项"
}
})
});

回答2:

1、使用jQuery代替$. 如:jQuery.ajax();
缺点:不适合扩展,一旦替换成第三方库时,那就麻烦大发
2、使用jQuery.noConflict。 如:var j = jQuery.noConflict(); j.ajax();
缺点:当使用jQuery的相关插件时,会使得插件失效哦!
3、wrap jQuery中的冲突方法。
如$.ajax()在Velocity中会冲突,则重新定义如下:
function dw(){}
dw.ajax=function(s){ jQuery.ajax(s); } dw.ajax();
方案3基本上解决了1、2中的缺点~~~故推荐使用第三种方法!
4、
定义一个 $JQ="$."
以后可以用 ${JQ}ajax().......
5. (function($){
//......
})(jQuery);
可以解决大部分问题了