0

我正在尝试创建一个插件“bg-rotator”,它采用 JSON 格式的参数:

$('.selector').bg_rotator({
    'duration':500,
    'delay':5000
});

然后在我的 Jquery 函数中,我试图获取 JSON 对象并拆分值:

(function( $ ){
   $.fn.bg_rotator = function(jsonObj) {
      var cn = $(this).attr('class'); //get the class name
      var obj = JSON.parse(jsonObj); //get the Json object
      var duration = obj.duration;
      var delay = obj.delay;
   }; 
})( jQuery );

这给了我错误,我找不到解析和获取 JSON 值的方法。有任何想法吗?谢谢

这有效:

(function( $ ){
     $.fn.bg_rotator = function(jsonObj) {
           var cn = $(this).attr('class'); //get the class name
           var duration = jsonObj.duration; //get the Json object
           var delay = jsonObj.delay;
     };
   })( jQuery ); 
4

3 回答 3

3

JSON 是 Javascript 对象表示法。这个想法是它们本质上只是常规的 Javascript 对象,因此您可以像使用常规的 Javascript 对象一样使用它们。您不需要解析对象,除非它们已被字符串化。在这种情况下,您只是传递一个常规对象,因此您只需访问对象的属性,无需解析。

于 2013-04-09T03:38:24.087 回答
1

不要使用 JSON.parse 因为你已经在传递 json 对象

只需删除 JSON.parse 并尝试它,它会工作

变量 obj = jsonObj; //获取Json对象

JSON.parse 用于将字符串解析为 json 对象,例如

JSON.parse("{'duration':500,'delay':5000}")

于 2013-04-09T03:45:47.810 回答
0

尝试只调用 jsonObj.duration。

于 2013-04-09T03:39:15.277 回答