【问题标题】:fadeout effect doesn't work well when called inside for loop在 for 循环中调用时,淡出效果效果不佳
【发布时间】:2011-11-09 05:20:57
【问题描述】:

我的代码真的很简单,但是这个问题我已经有很长时间了。我真的需要知道这样做的正确方法。

我的列表中有很多 divs。每个人都有自己的id。有一个按钮可以删除选中的divs,像这样:

function int_groups_removeGroups(id) {
   $("#"+id).css("background-color","#FFABAB");
   $("#"+id).css("background-color","#FFABAB").fadeOut('slow');                                             
}                               

 groupsize = groupsArray.length;        
 for (i =0; i <= groupsize; i++) {
    int_groups_removeGroups("group_"+groupsArray[i]);
 }

除了fadeout 的效果外,一切正常。 发生的情况是,当我单击要删除的按钮时,divs 简单地闪烁红色然后消失。

【问题讨论】:

  • 你的 HTML 是什么样的?什么浏览器产生了问题?
  • 我建议建立一个jsfiddle.net 以便人们更好地帮助您
  • 顺便说一句,您可以通过向所有这些 DIV 添加一个类并选择它来优化您的代码,而不是选择每个单独的 ID。

标签: jquery loops fadeout effect


【解决方案1】:

你做得太多了。这两行就足够了:

var groupids = '#group_' + groupsArray.join(', #group_');

$(groupids).css("background-color","#FFABAB").fadeOut('slow');                                             

第一行组成你的 id 字符串,第二行将它传递给 jQuery,jQuery 会淡出每一个。

如果您仍然遇到性能问题,则说明您并行设置了太多 div。

【讨论】:

  • 我解决了这个谜:S 在这种情况下的问题是循环完成后我调用一个函数来更改包含所有提到的 div 的容器的 HTML ......无论如何,谢谢:D
猜你喜欢
  • 2012-01-29
  • 1970-01-01
  • 1970-01-01
  • 2021-12-19
  • 1970-01-01
  • 2011-03-05
  • 2011-10-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多