gpt4 book ai didi

javascript - 向随机加载的 div 添加样式 - 无法正常工作

转载 作者:行者123 更新时间:2023-11-29 19:46:29 24 4
gpt4 key购买 nike

这是这篇文章的续题: Add style to random loaded divs我现在已经尝试尽可能地简化这个问题。

这里是:

使用此代码,我尝试根据加载顺序为随机加载的元素添加样式。

<script> 
$(document).ready(function(){
var divs = $("div.item").get().sort(function(){
return Math.round(Math.random())-0.5;
}).slice(0,6)

$(divs).each(function( index ) {
if(index==1 || index==3)
$(this).css("margin-left", "0%");
else
$(this).css("margin-left", "2%"); //or whatever left value you need
});
$(divs).show();
});
</script>

我需要 .item 条像这张图片一样排列 enter image description here到目前为止,这只会在您刷新浏览器时偶然发生。

我想如果你自己尝试一下你就会发现问题所在这是用于快速复制/粘贴的整个 shebang

    <html>
<head>


<script src="http://code.jquery.com/jquery-1.8.2.js"></script>

<style>
.container {width:750px; background-color:#CCC; height:200px; padding-top:70px; margin: 0 auto; margin-top:5%}
.item {display:none; text-align:center; width:32%; float:left}
</style>

<script>
$(document).ready(function(){
var divs = $("div.item").get().sort(function(){
return Math.round(Math.random())-0.5;
}).slice(0,6)

$(divs).each(function( index ) {
if(index==1 || index==3)
$(this).css("margin-left", "0%");
else
$(this).css("margin-left", "2%"); //or whatever left value you need
});
$(divs).show();
});
</script>

</head>

<body>

<div class="container">
<div class="item" style="background-color:#F00">1</div>
<div class="item" style="background-color:#9F0">2</div>
<div class="item" style="background-color:#FF0">3</div>

<div class="item" style="background-color:#939">4</div>
<div class="item" style="background-color:#3CF">5</div>
<div class="item" style="background-color:#CF3">6</div>

<div class="item" style="background-color:#6C9">7</div>
<div class="item" style="background-color:#999">8</div>
<div class="item" style="background-color:#90F">9</div>

<div class="item" style="background-color:#FF9">10</div>
<div class="item" style="background-color:#099">11</div>
<div class="item" style="background-color:#666">12</div>

</div>



</body>
</html>

最佳答案

因为您没有随机化 DOM 顺序,所以只有 divs 数组中包含的 div。订单仍然是数字。

因此,当使用 $.each(divs) 循环 divs 时,您正在循环您创建的随机顺序,但 DOM 顺序仍未改变(如果这样感觉)。您可以说 divs$('div.items') 不同步。

您可以试试这个:(演示:http://jsbin.com/aSejiWA/3)

$(document).ready(function(){
var divs = $("div.item").get().sort(function(){
return Math.round(Math.random())-0.5;
}).slice(0,6);

$(divs).addClass('show'); // to re-select the visual items

$('.item.show').each(function( index ) {
$(this).css('margin-left', index%3 ? '2%' : 0);
}).show();
});

关于javascript - 向随机加载的 div 添加样式 - 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19156918/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com