首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jQuery .each不遍历each

jQuery .each不遍历each
EN

Stack Overflow用户
提问于 2013-07-06 03:25:44
回答 2查看 996关注 0票数 0

有人能告诉我我哪里做错了吗?我有以下jQuery。它应该遍历每个.box,获取“fade”属性,并对每个.box应用单独的淡入淡出时间。但是,它忽略了var fade,只是一次将它们全部淡出。这不一定是淡入淡出的,因为我想对“每个”.box做几件事。你知道我做错了什么吗?你能解释一下为什么吗?我真的很感谢你的帮助。

代码语言:javascript
运行
复制
<div class="box" fade="1000"></div>
<div class="box" fade="3000"></div>
<div class="box" fade="6000"></div>

-

代码语言:javascript
运行
复制
$('.box').each(function() {

   var fade = $(this).attr('fade');

   $(this).fadeOut(fade);

});
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-06 03:27:49

你的迭代是好的。但持续时间必须是一个数字,因此将其类型转换为int:

代码语言:javascript
运行
复制
$('.box').each(function() {

   var fade = $(this).attr('fade');
   $(this).fadeOut(+fade); //here 

});

另外,fade也不是一个有效的属性,考虑使用data-fade作为属性名,同时使用jquery的data api访问它,会自动将其转换为number。与使用attr访问不同,在这种情况下不需要显式强制转换。

标记

代码语言:javascript
运行
复制
<div class="box" data-fade="1000">222</div>
<div class="box" data-fade="3000">333</div>
<div class="box" data-fade="6000">444</div>

JS

代码语言:javascript
运行
复制
$(function(){
 $('.box').each(function() {
   var $this = $(this);
   var fade = $this.data('fade');
   $this.fadeOut(fade);

 });
});
票数 5
EN

Stack Overflow用户

发布于 2013-07-06 03:29:25

fade不是有效属性。将它们切换到data-fade运行良好。

http://jsfiddle.net/wJftm/

代码语言:javascript
运行
复制
$('.box').each(function() {

   var fade = $(this).data('fade');

   $(this).fadeOut(fade);

});

<div class="box" data-fade="1000"></div>
<div class="box" data-fade="3000"></div>
<div class="box" data-fade="6000"></div>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17495649

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档