jQuery.each不遍历每个
有人能告诉我我做错了什么吗?我有以下jQuery。它应该遍历每个.box,获取属性“fade”,并对每个.box应用单独的淡入淡出时间。然而,它忽略了var淡入,只是一次将它们全部淡出。这不一定是褪色,因为我想对“每个”框做几件事。知道我做错了什么吗?你能解释一下原因吗?我真的很感谢你的帮助jQuery.each不遍历每个,jquery,each,Jquery,Each,有人能告诉我我做错了什么吗?我有以下jQuery。它应该遍历每个.box,获取属性“fade”,并对每个.box应用单独的淡入淡出时间。然而,它忽略了var淡入,只是一次将它们全部淡出。这不一定是褪色,因为我想对“每个”框做几件事。知道我做错了什么吗?你能解释一下原因吗?我真的很感谢你的帮助 <div class="box" fade="1000"></div> <div class="box" fade="3000"></div> <div
<div class="box" fade="1000"></div>
<div class="box" fade="3000"></div>
<div class="box" fade="6000"></div>
您的迭代很好。但duration必须是一个数字,因此将其类型转换为int:
$('.box').each(function() {
var fade = $(this).attr('fade');
$(this).fadeOut(+fade); //here
});
褪色并不是一个有效的属性,考虑使用数据淡入,因为属性名称也用jQuery的数据API访问它,自动将其转换为数字。与使用attr访问它不同,在这种情况下不需要显式强制转换
加成 淡入淡出不是有效的属性。将它们切换到数据淡入淡出效果很好@jcsanyi是的,使用数据api。啊-谢谢你,PSL。我不知道“数据-”属性。这解决了一个问题——当然,现在我还有另一个问题。但另一个问题可能更好。谢谢你的帮助@XTIAN用于自定义属性,如您正在执行的操作,以使html保持有效。只是出于好奇,前导加号是否将字符串转换为整数?@XTIAN是的,它是一元运算符。您还可以使用parseIntfade,实际上将其切换为数据淡入淡出,并使用数据api自动访问它。谢谢您提供的信息,Tim。谢谢。
$('.box').each(function() {
var fade = $(this).attr('fade');
$(this).fadeOut(+fade); //here
});
<div class="box" data-fade="1000">222</div>
<div class="box" data-fade="3000">333</div>
<div class="box" data-fade="6000">444</div>
$(function(){
$('.box').each(function() {
var $this = $(this);
var fade = $this.data('fade');
$this.fadeOut(fade);
});
});
$('.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>