对jdata数组使用JSON.stringify()方法后,

来源:10-8 Ajax获取 JSON 数据(下)

supersylph

2016-06-15

 .addComponent('back',{
             width:52,
             height:50,
             bg:'imgs/tail_back.png',
             center:true,
             onclick : function(){
                  $.fn.fullpage.moveTo( 1 )
             }
        })

最后一个back组件的onclick函数不会被解析进JSON字符串中

写回答

2回答

Lyn

2016-06-17

非要解决的话也是有办法的。

var jdata = [];
jdata.push( {a:1,b:function(t){console.log(t);}} );
var str = JSON.stringify( jdata,function(k,v){if(typeof v ==='function'){return v.toString()};return v;}) ;
JSON.parse(str,function(k,v){if(typeof v === 'string' && v.substr(0,8)==='function'){return eval('('+v+')')}return v;})

不过这没有什么意义,一般来说,这部分的JSON配置,是后台的UI界面去组织的。不可能让你去写这个JSON。

0
1
supersylph
非常感谢!
2016-06-17
共1条回复

Lyn

2016-06-16

忘记这茬了,试试下面这个代码:

JSON.stringify( jdata,function(k,v){if(typeof v ==='function'){return v.toString()};return v;})


0
1
supersylph
那么这个函数被转换成字符串放到JSON字符串以后, 执行的时候该如何作为函数绑定给click事件呢? 除了使用eval有没有别的方法.
2016-06-16
共1条回复

Web App用组件方式开发全站

用HTML5/CSS3/JS流行技术,实现移动端可视化数据报告

3164 学习 · 516 问题

查看课程