如果等于则设为block,如果不等于这设为none,如果在将效果设置复杂一点,当点击按钮时,不是忽然隐藏和显示子菜单,而是高度平滑的转变,这时就要通过setTimeout来设置子菜单的height了。下面学步园小编来讲解下Json怎样扩展jQuery?
Json怎样扩展jQuery
以前用习惯了扩展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