有人能告诉我我哪里做错了吗?我有以下jQuery。它应该遍历每个.box
,获取“fade”属性,并对每个.box
应用单独的淡入淡出时间。但是,它忽略了var fade
,只是一次将它们全部淡出。这不一定是淡入淡出的,因为我想对“每个”.box
做几件事。你知道我做错了什么吗?你能解释一下为什么吗?我真的很感谢你的帮助。
<div class="box" fade="1000"></div>
<div class="box" fade="3000"></div>
<div class="box" fade="6000"></div>
-
$('.box').each(function() {
var fade = $(this).attr('fade');
$(this).fadeOut(fade);
});
发布于 2013-07-06 03:27:49
你的迭代是好的。但持续时间必须是一个数字,因此将其类型转换为int:
$('.box').each(function() {
var fade = $(this).attr('fade');
$(this).fadeOut(+fade); //here
});
另外,fade也不是一个有效的属性,考虑使用data-fade
作为属性名,同时使用jquery的data api访问它,会自动将其转换为number。与使用attr访问不同,在这种情况下不需要显式强制转换。
标记
<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
$(function(){
$('.box').each(function() {
var $this = $(this);
var fade = $this.data('fade');
$this.fadeOut(fade);
});
});
发布于 2013-07-06 03:29:25
fade
不是有效属性。将它们切换到data-fade
运行良好。
http://jsfiddle.net/wJftm/
$('.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>
https://stackoverflow.com/questions/17495649
复制相似问题