0

我正在尝试将一些 json 数据加载到自定义 JQuery 函数中。我承认我在学习的过程中可能有一个简单的解决方案。请告知我是否只是以错误的方式进行。

到目前为止,我只是将它附加到正文中,以确保我实际上正确地找到了数据。我也试图使用 append() 将其添加到函数中,但没有得到任何地方。

$.getJSON("designs/new.json",function(result){
        $.each(result, function(i, field){
            $("body").append(field['hex'] + " ");
        });
});

基本上我想做的是用我上面的 json 数据中的十六进制代码替换这个 colorPicker 函数的十六进制数据值。我已经搞砸了一段时间,似乎找不到正确的方法。

$.fn.colorPicker.defaults.colors = ['000', '000', 'fff', 'fff'];

我提前感谢您的帮助!

4

2 回答 2

0

如果我理解正确:

1)您的 JSON 返回一个对象数组(大概四个?),每个对象都有一个“十六进制”属性。2)您想根据这四个十六进制属性设置颜色选择器的默认颜色。

因此,假设我的假设是正确的并且您的数组已正确排序,您可以执行以下操作:

$.getJSON("designs/new.json",function(result){
        $.fn.colorPicker.defaults.colors = $.map(result, function(i) {
            return i.hex;
        });
});

我已将十六进制属性映射到一个数组并将其直接分配给颜色。同样,这是假设您的结果对象中有一个由四个对象组成的数组,每个对象都有一个 hex 属性。

于 2012-04-26T00:21:16.723 回答
0

尝试使用 alert(JSON.stringify(result)) 来查看您的 json 数据是否正确加载。此代码应该可以工作:

$.getJSON("t.json", function (result) {
  //alert(JSON.stringify(result));
  $.fn.colorPicker.defaults.colors = result.colors;
});

其中 t.json 具有以下内容:

{
  "colors": ['00a', '00b', 'ffa', 'ffb']
}
于 2012-04-26T00:21:26.627 回答