【发布时间】:2013-07-14 20:41:54
【问题描述】:
我正在从 ajax 制作一个列表,这部分工作得很好。我也在检查 sreenwidth 并相应地更改我的一些 div 的宽度,但是当我使用 ajax 时无法让它工作......
这是我的工作:
$(document).ready(function(){
var screenwidth = $(window).width();
swidth = screenwidth - 20;
$("#thelist li").css("width", swidth+"px");
$.getJSON('linktomyphppage.php', function(data) {
var array = [];
$.each(data, function (i, val){
array.push($("#thelist").append("<li>"+val.fname+" "+val.lname+"</li>"));
});
});
});
我的 json 看起来像这样:
[{"fname":"Peter","lname":"Hanson"},{"fname":"Michael","lname":"Bird"}]
json 部分工作得很好,但它就像根本没有得到 CSS 部分一样。如果我这样做,它可以工作,但是我不使用 json:
for (var i = 0; i < 2; i++) {
array.push($("#thelist").append("<li>"+val.fname+" "+val.lname+"</li>"));
}
希望得到帮助,并在此先感谢 :-)
【问题讨论】:
-
我猜是因为你在创建之前使用
#thelist li..只需更改jQuery CSS的位置并将其放在最后.. -
你能用一个例子构建一个 JsFiddle 吗?带有 swidth 的 console.log 显示什么?也许您没有得到 swidth 的有效响应?你也应该
var swidth我不认为这是问题 -
css()将style属性添加到元素,这样新元素就不会拥有它。只需将 css 部分移动到 json 请求回调的末尾即可。