请您查看 This Demo 并告诉我为什么我无法为动态生成的div添加保证金?
jQuery(function () {
var rnd1 = Math.ceil(Math.random() * 450);
var rnd2 = Math.ceil(Math.random() * 450);
for (var i = 0; i < 6; i++) {
$('.wrapper').append('<div class="box"></div>');
// $('.box').css({"left": rnd1,"top": rnd2});
}
$(".box").each(function () {
$(this).css({
"left": rnd1,
"top": rnd2
});
});
正如你所看到的,我试过了两个:
$(&#39; .box&#39;)。css({&#34; left&#34;:rnd1,&#34; top&#34;:rnd2});
在循环内并使用.each()
作为:
$(".box").each(function () {
$(this).css({
"left": rnd1,
"top": rnd2
});
});
离开了循环,但显然他们没有完成这项工作!感谢
答案 0 :(得分:1)
由于您没有添加保证金,因此您需要设置top
和left
位置,并且只有在元素没有静态位置时才有效
$(this).css({"left": rnd1,"top": rnd2, position: 'relative'});
或者您实际上可以添加保证金
$(this).css({"margin-left": rnd1, "margin-top": rnd2});
作为旁注,你可以在创建元素时添加样式,第二个循环是不必要的
for (var i = 0; i < 6; i++) {
$('.wrapper').append(
$('<div />', {
'class' : 'box',
css : {
marginLeft : rnd1,
marginTop : rnd2
}
})
);
}