我有这样的div:
<div id="something-1" data-options='{"pause":"YES","delete":"NO", "kill":"NO"}'></div>
我发生的是一些ajax请求并更改了这样的数据选项:
$('#something-1' + item.id).attr("data-options", '{"pause":"YES","delete":"YES", "kill":"NO"}');
当我用firebug检查时,我可以在html中看到更改的数据选项。
然后我有这个“测试”功能,我从firebug触发,看看ajax更新后数据是否发生了变化:
(function() {
window.checkChanges = checkChanges;
function checkChanges(id) {
var dataOptions = $("#" + id).data('options');
for(var index in dataOptions) {
console.log(index,dataOptions[index]);
};
}
})();
但由于某种原因,数据选项在ajax请求之前和之后是相同的。我需要以某种方式将实时功能纳入其中?或其他什么,但我不知道是什么?有什么建议吗?
修改
Ajax请求将更改删除到YES
答案 0 :(得分:1)
你有可能混淆所选div的ID吗?在您的假ajax请求中,您在检查中不存在的“内容”之后添加了一个item.id.然后就可以了。
charlietfl指出你可以省略对象周围的引号,但我认为它也适用于引号。
答案 1 :(得分:0)
删除包含您要设置为options
的对象的引号,以便将对象而不是字符串传递给data
$(selector).attr("data-options", {"pause":"YES","delete":"YES", "kill":"NO"});
DEMO:http://jsfiddle.net/8A3LE/
仅更改一个值的另一种方法
$(selector).data('options').delete='YES'