我有一个存储在数据属性中的 JSON 字符串。
{
"active": true,
"icons": {
"activeHeader": "ui-icon-alert"
},
"animate": {
"duration": 1000,
"always": dMethod
}
}
我有一个名为 dMethod 的函数:
function dMethod() {
alert("DONE");
}
当我尝试通过解析字符串时,JSON.parse
我得到一个错误,说无效字符。我检查并在解析方法运行时定义了 dMethod,如果我删除了“always”:dMethod 部分,那么解析器工作正常。我不能在 dMethod 周围使用引号,因为那样类型将是字符串类型而不是对象函数。
任何帮助,将不胜感激。
谢谢,
彼得
编辑:
谢谢你所有的答案。我做了一些澄清,所以也许你能更好地理解这个问题。我制作了一个非常简单的 js 库来让 jqueryui 通畅:
var juiObjects = ["accordion", "autocomplete", "button", "datepicker", "dialog", "menu", "progressbar", "slider", "spinner", "tabs", "tooltip"];
$(document).ready(function() {
for (var i = 0; i < juiObjects.length; i++) {
var attributeName = "data-" + juiObjects[i];
$("["+ attributeName + "]").each(function () {
var optionsValue = $(this).attr(attributeName);
var options = JSON.parse(optionsValue);
$(this)[juiObjects[i]](options);
});
}
});
我不得不在 JSON.parse 和 eval 之间做出选择。但我认为 eval 不会是那么好的选择。并尽量保持“图书馆”尽可能简单。但看起来我已经在小部件中节省了代码。