我正在使用JQuery-ujs + Rails。而且我对问题的解决方案只有90%但是难倒了:
以下是我要处理的内容:
$(function(){
$('#add-mod-form').bind('ajax:success', function(evt, data, status, xhr){
alert("Success!");
console.log(data.success);
console.log(data.html);
console.log(xhr.responseText);
console.log(evt);
console.log(data);
console.log(status);
console.log(xhr);
//works!
$('#page').append(xhr.responseText);
//does not work!
$('#page').append(data.html);
});
});
这是我的日志:
undefined
undefined
{"success":true,"html":"<div class=\"extrafield\" id=\"extrafield_73\">\n<div class='trash_can'>Nala <a href=\"#\" data-confirm=\"Are you sure you want to delete Nala?\" data-href=\"/delete_extra_field/73\"><img alt=\"Trash\" src=\"http://\" /></a></div>\n</div>\n"}
Object { type="ajax:success", timeStamp=1310160257936, more...}
{"success":true,"html":"<div class=\"extrafield\" id=\"extrafield_73\">\n<div class='trash_can'>Nala <a href=\"#\" data-confirm=\"Are you sure you want to delete Nala?\" data-href=\"/delete_extra_field/73\"><img alt=\"Trash\" src=\"http://\" /></a></div>\n</div>\n"}
success
Object { readyState=4, responseText="{"success":true,"html":"<div class=\"extrafield\" id=\"extrafield_73\">\n<div class='trash_can'>Nala <a href=\"#\" data-confirm=\"Are you sure you want to delete Nala?\" data-href=\"/delete_extra_field/73\"><img alt=\"Trash\" src=\"http://\" /></a></div>\n</div>\n"}", more...}
答案 0 :(得分:1)
这是因为您的data
是一个json 字符串,而不是一个对象。你应该这样做:
$('#add-mod-form').bind('ajax:success', function(evt, data, status, xhr){
data = $.parseJSON(data); //This converts 'data' from json string to object
alert("Success!");
//The rest of your code
});
请注意$.parseJSON
从json字符串解码为object。
希望这会有所帮助。干杯
答案 1 :(得分:0)
html也是一种方法。请改用data.html()。