1.jquery和velocity沖突
目前成都創(chuàng)新互聯(lián)公司已為近1000家的企業(yè)提供了網(wǎng)站建設(shè)、域名、雅安服務(wù)器托管、網(wǎng)站托管維護(hù)、企業(yè)網(wǎng)站設(shè)計(jì)、雙臺(tái)子網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
如js中的$.ajax,會(huì)被識(shí)別為velocity對(duì)象,這樣velocity會(huì)拋出異常
解決辦法:將 $.ajax改為jQuery.ajax
2.validate插件
$(document).ready(function(){
$("#commentForm").validate();
});
commentForm為form對(duì)應(yīng)的ID
input對(duì)應(yīng)的class為驗(yàn)證方法,如:class="required",class="required email"等,
可通過(guò)設(shè)置title來(lái)顯示錯(cuò)誤信息
也可以自定義validate,這樣可以使input能干干凈凈的,如:
$(document).ready(function(){
var validator = $("#commentForm").validate({
rules: {
name: "required"
},
messages:{
required:"必填項(xiàng)"
}
})
});
所以實(shí)現(xiàn)版本之間的和平相處很重要。這裡介紹一個(gè)函數(shù),可以很順利,很簡(jiǎn)單的解決這個(gè)問(wèn)題。
使用實(shí)例:script type="text/javascript" src="jquery.js"/script
script type="text/javascript"
var j = jQuery.noConflict(true);
/script
script type="text/javascript" src="jquery-1.7.js"/script
script type="text/javascript"
$(document").ready(function(){
alert(faf");})
j(document").ready(function(){
alert(faf");})/script
運(yùn)行這個(gè)函數(shù)把$的使用權(quán)讓渡給另一個(gè)jquery庫(kù),這樣就能避免不同jquery版本之間的$對(duì)象之間的衝突。(經(jīng)試驗(yàn),如上試驗(yàn)驗(yàn)證可以輸出兩個(gè)彈出框,可以解決不同版本之間的衝突。)
在運(yùn)行這個(gè)函數(shù)之後,就只能用j訪問(wèn)第一個(gè)jquery庫(kù)。例如,在要用到$(div p")的地方,就必須換成j(div p")。另一個(gè)jquery庫(kù),正常使用$訪問(wèn)。
注意:這個(gè)函數(shù)必須在導(dǎo)入jQuery文件之后,並且在導(dǎo)入另一個(gè)jquery庫(kù)之前運(yùn)行。(如上例運(yùn)行位置。)
是否可以解決您的問(wèn)題?
jQuery.noConflict([extreme])
概述
運(yùn)行這個(gè)函數(shù)將變量$的控制權(quán)讓渡給第一個(gè)實(shí)現(xiàn)它的那個(gè)庫(kù)。
這有助于確保jQuery不會(huì)與其他庫(kù)的$對(duì)象發(fā)生沖突。 在運(yùn)行這個(gè)函數(shù)后,就只能使用jQuery變量訪問(wèn)jQuery對(duì)象。例如,在要用到$("div p")的地方,就必須換成jQuery("div p")。 '''注意:'''這個(gè)函數(shù)必須在你導(dǎo)入jQuery文件之后,并且在導(dǎo)入另一個(gè)導(dǎo)致沖突的庫(kù)'''之前'''使用。當(dāng)然也應(yīng)當(dāng)在其他沖突的庫(kù)被使用之前,除非jQuery是最后一個(gè)導(dǎo)入的。
參數(shù)
extremeBooleanV1.0
傳入 true 來(lái)允許徹底將jQuery變量還原
示例
描述:
將$引用的對(duì)象映射回原始的對(duì)象。
jQuery 代碼:
jQuery.noConflict();
// 使用 jQuery
jQuery("div p").hide();
// 使用其他庫(kù)的 $()
$("content").style.display = 'none';
描述:
恢復(fù)使用別名$,然后創(chuàng)建并執(zhí)行一個(gè)函數(shù),在這個(gè)函數(shù)的作用域中仍然將$作為jQuery的別名來(lái)使用。在這個(gè)函數(shù)中,原來(lái)的$對(duì)象是無(wú)效的。這個(gè)函數(shù)對(duì)于大多數(shù)不依賴于其他庫(kù)的插件都十分有效。
jQuery 代碼:
jQuery.noConflict();
(function($) {
$(function() {
// 使用 $ 作為 jQuery 別名的代碼
});
})(jQuery);
// 其他用 $ 作為別名的庫(kù)的代碼
描述:
創(chuàng)建一個(gè)新的別名用以在接下來(lái)的庫(kù)中使用jQuery對(duì)象。
jQuery 代碼:
var j = jQuery.noConflict();
// 基于 jQuery 的代碼
j("div p").hide();
// 基于其他庫(kù)的 $() 代碼
$("content").style.display = 'none';
描述:
完全將 jQuery 移到一個(gè)新的命名空間。
jQuery 代碼:
var dom = {};
dom.query = jQuery.noConflict(true);
結(jié)果:
// 新 jQuery 的代碼
dom.query("div p").hide();
// 另一個(gè)庫(kù) $() 的代碼
$("content").style.display = 'none';
// 另一個(gè)版本 jQuery 的代碼
jQuery("div p").hide();
那你就不要調(diào)用2次了,調(diào)用就要放到最主的頁(yè)面就好了,反正其他的都要嵌進(jìn)去到這個(gè)主頁(yè)面的,然后都可以調(diào)用到j(luò)query了,怎么這都不知道,我們都無(wú)語(yǔ)了
單獨(dú)對(duì)應(yīng)就用下面的方法
!-- 引入1.6.4版的jq --
script src=""/script
script var jq164 = jQuery.noConflict(true); /script
!-- 引入1.2.2版的jq --
script src=""/script
script var jq122 = jQuery.noConflict(true); /script
script
(function($){
//此時(shí)的$是jQuery-1.6.4
$('#header');
})(jq164);
/script
script
(function($){
//此時(shí)的$是jQuery-1.2.2
$('#footer');
})(jq122);
/script
(1)鑒于此種情況,有可能是多個(gè)頁(yè)面只引用easyui或者jquery導(dǎo)致easyui覆蓋了jquery從而產(chǎn)生沖突
(2)解決方法建議建立一個(gè)模板把所要用到的jquery和easyui放模板中,這樣就不會(huì)出現(xiàn)覆蓋的情況
(3)此外還有相關(guān)解決方案,可以參考此鏈接中的解決辦法