這篇文章將為大家詳細講解有關Json如何擴展jQuery,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
如果等于則設為block,如果不等于這設為none,如果在將效果設置復雜一點,當點擊按鈕時,不是忽然隱藏和顯示子菜單,而是高度平滑的轉變,這時就要通過setTimeout來設置子菜單的height了。
以前用習慣了擴展Jquery的Json,在進行ajax開發時,處理json數據非常方便;而在jQuery中,只提供了一個簡單的jQuery.getJSON()方法,并未提供jQuery本身對json數據的轉換處理,將json字符串轉換為javascript數據對象還比較容易利用eval()函數即可,但要將javascript的數據類型轉換成json字符串就比較難了;剛開始不得同
時使用prototype.js和jQuery。
擴展Jquery的Json代碼:
//擴展jQuery對json字符串的轉換
jQuery.extend({
/***@see將json字符串轉換為對象*@paramjson字符串*@return返回object,array,string等對象*/
evalJSON:function(strJson){
returneval("("+strJson+")");
}
});
jQuery.extend({
/***@see將javascript數據類型轉換為json字符串*@param待轉換對象,支持object,array,string,function,number,boolean,regexp*@return返回json字符串*/
Json怎樣擴展jQuery
toJSON:function(object){
vartype=typeofobject;
if('object'==type){
if(Array==object.constructor)type='array';
elseif(RegExp==object.constructor)type='regexp';
elsetype='object';
}
switch(type){
case'undefined':
case'unknown':
return;
break;
case'function':
case'boolean':
case'regexp':
returnobject.toString();
break;
case'number':
returnisFinite(object)?object.toString():'null';
break;
case'string':
return'"'+object.replace(/(\|")/g,"\$1").replace(/n|r|t/g,function(){
vara=arguments[0];
return(a=='n')?'\n':(a=='r')?'\r':(a=='t')?'\t':""
})+'"';
break;
case'object':
if(object===null)return'null';
varresults=[];
for(varpropertyinobject){
varvalue=jQuery.toJSON(object[property]);
if(value!==undefined)results.push(jQuery.toJSON(property)+':'+value);
}
return'{'+results.join(',')+'}';
break;
case'array':
varresults=[];
for(vari=0;i<object.length;i++){
varvalue=jQuery.toJSON(object[i]);
if(value!==undefined)results.push(value);
}
return'['+results.join(',')+']';
break;
}
}
});示例:
varobj={
name:"sean",
friend:["fans","bruce","wawa"],
action:function(){
alert("gogogog")
},
boy:true,
age:26,
reg:/b([a-z]+)1b/gi,
child:{
name:"none",
age:-1
}
};
varjson=$.toJSON(obj);
varobjx=$.evalJSON(json);關于“Json如何擴展jQuery”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。