【问题标题】:Add style to random loaded divs为随机加载的 div 添加样式
【发布时间】:2013-10-03 22:17:15
【问题描述】:

解释我的问题有点困难,所以如果我没有说清楚,请问。

使用这个脚本,我随机加载了 6 个 div。

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

我正在使用 twitter-bootstrap,因为我想要每行 3 个 div(两行),所以我为它们分配了 .span4 类。这将自动生成两行,每行有 3 个.span4。它们需要对齐左右边距,并在每个边距之间留出一个间距。
SEE HERE

现在的问题是,通过随机加载它们,我无法让它们正确对齐。
使用 twitter-bootstrap,第一个跨度永远不会得到 margin-left,而其他所有跨度都会。
因此,如果我随机加载,例如:
第六个跨度进入第一个位置,第一个跨度进入第二个位置,然后我有对齐(边距)问题。
SEE HERE

我认为首先我需要使用 .span4 { margin-left: 0 !important;} 使所有跨度相等左右两边
SEE HERE

我已经在这种情况下苦苦挣扎了几天,想不出任何优雅的解决方案。

是否有 Javascript 解决方案可以根据加载顺序为特定跨度添加样式?
作为第一个和第五个加载的只有一个右边距
加载第二个和第五个以具有左右边距的那些
加载为第三和第六的只有左边距

【问题讨论】:

  • 尝试在内存中创建它们,然后附加到 DOM。
  • 谢谢库尔特,你能说得更具体点吗?
  • 您需要做的只是从第一个和第四个 div 中删除边距,然后对所有其余部分应用边距。在您使用计数器对随机生成进行排序后遍历它们,并将边距 0 应用于第一个和第四个,以及您想要的其余部分。中间不需要左右边距,但第 2、3、5 和 6 号需要左边距。
  • 谢谢你,Alex,你能给我举个柜台的例子吗?
  • 您可以在包含已加载 div 元素的 divs 变量上使用 each() 和计数器,就像您可以在这里找到的 api.jquery.com/each 一样。当 index 为 1 和 4 时,您在函数中的 $(this) 上不应用边距,其余部分应用左边距,您需要将它们适当地隔开。

标签: javascript jquery html css twitter-bootstrap


【解决方案1】:
<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==0 || index==3)
      $(this).css("margin-left", "0px");
  else
      $(this).css("margin-left", "10px"); //or whatever left value you need
});

$(divs).show();
});
</script>

这应该可以,但是如果 divs 是一种奇怪的数组,并且碰巧不是,您可以将代码更改为此。

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

var i=0;
for(i=0; i<6; i++){
  if(i==0 || i==3)
      $(divs[i]).css("margin-left", "0px");
  else
      $(divs[i]).css("margin-left", "10px"); //or whatever left value you need
}

$(divs).show();
});
</script>

【讨论】:

【解决方案2】:

感谢亚历克斯,我能够简化问题和问题,所以现在您有两个非常有效的答案>> HERE <<
感谢大家的贡献!

【讨论】:

  • 嗯 :),我错过了一些内容。会有助于查看 html 代码,因为我不知道 show 是否被扩展或者 div 是如何在 DOM 中定位的。很高兴看到您设法解决了问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-02-18
  • 2012-10-26
  • 2015-04-09
  • 2021-03-17
  • 1970-01-01
  • 1970-01-01
  • 2015-11-29
相关资源
最近更新 更多