Data available only after alert
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
jQuery: Return data after ajax call success
我写了一个脚本,在里面用一个select字段添加一个新的div容器。 select字段的数据之前加载了ajax请求。 但由于某种原因,只有当我使用alert()输出内容时,这些字段才可见。
1 2 3 4 5 6 7 8 9 10 11 12 13 | var o = ''; $.ajax({ type: 'post', dataType: 'json', url: webroot + 'items', success: function(data) { $.each(data, function(index, value) { o += '<option value="' + index + '">' + value + '</option>'; }); } }); var l = parseInt($('.items .item').length); var h = '<span class="bold">Item ' + (l + 1) + '</span><select id="ItemName" name="data[Item][name]">' + o + '</select>'; |
我实际上不知道如何解决这个问题。 你能帮助我吗?
Ajax是异步的。 将所有代码移动到成功函数中,它将起作用。 它与alert一起使用的原因是因为警报允许一些时间来获得AJAX结果。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | $.ajax({ type: 'post', dataType: 'json', url: webroot + 'items', success: function(data) { var o = ''; $.each(data, function(index, value) { o += '<option value="' + index + '">' + value + '</option>'; }); var l = parseInt($('.items .item').length); var h = '<span class="bold">Item ' + (l + 1) + '</span><select id="ItemName" name="data[Item][name]">' + o + '</select>'; } }); |
除了将一些html加载到变量中之外,您的代码实际上并没有做任何事情。 所以不管你用"h"做什么,都要在成功函数中做。