Javascript 如何在不同的时间为每个元素运行函数?
我需要知道,如何为我选择的每个元素运行一个函数。这是我的jQuery代码:Javascript 如何在不同的时间为每个元素运行函数?,javascript,jquery,Javascript,Jquery,我需要知道,如何为我选择的每个元素运行一个函数。这是我的jQuery代码: $(function() { $(".line").each(function() { var dot = $(this).find('.dot'); setTimeout(function () { moveDot(dot); }, 250); }); }); 它可以为每个元素运行moveDot()(每250毫秒一次),但现在,所有元素都同时启动。以下是。使用索引: $("
$(function() {
$(".line").each(function() {
var dot = $(this).find('.dot');
setTimeout(function () {
moveDot(dot);
}, 250);
});
});
它可以为每个元素运行moveDot()
(每250毫秒一次),但现在,所有元素都同时启动。以下是。使用索引:
$(".line").each(function(i) {
var dot = $(this).find('.dot');
setTimeout(function () {
moveDot(dot);
}, ++i * 250);
});
使用以下索引:
$(".line").each(function(i) {
var dot = $(this).find('.dot');
setTimeout(function () {
moveDot(dot);
}, ++i * 250);
});
与每个
索引相乘
$(".line").each(function(i) {
var dot = $(this).find('.dot');
setTimeout(function () {
moveDot(dot);
}, 250 * i+1);
});
与每个索引相乘
$(".line").each(function(i) {
var dot = $(this).find('.dot');
setTimeout(function () {
moveDot(dot);
}, 250 * i+1);
});
尝试将索引传递到设置超时()
。它将为循环中的每个元素递增,从而增加延迟
$(function() {
$(".line").each(function(index) {
var dot = $(this).find('.dot');
setTimeout(function () {
moveDot(dot);
}, index * 250);
});
});
尝试将索引传递到设置超时()
。它将为循环中的每个元素递增,从而增加延迟
$(function() {
$(".line").each(function(index) {
var dot = $(this).find('.dot');
setTimeout(function () {
moveDot(dot);
}, index * 250);
});
});
您可以使用随机函数javascript
(function() {
$(".line").each(function() {
var x = Math.floor((Math.random() * 250) + 1);
var dot = $(this).find('.dot');
setTimeout(function () {
moveDot(dot);
}, x);
});
});
您可以使用随机函数javascript
(function() {
$(".line").each(function() {
var x = Math.floor((Math.random() * 250) + 1);
var dot = $(this).find('.dot');
setTimeout(function () {
moveDot(dot);
}, x);
});
});
我更喜欢这样的解决方案:
function moveDot(elm,index) {
elm.animate({left: '370px'}, {duration: 3000*index, queue: false, done: function() {
elm.animate({left: '0px'}, {duration: 3000*index, queue: false, done: function() {
moveDot(elm,index)
}});
}});
}
$(function() {
$(".line").each(function(i) {
var dot = $(this).find('.dot');
setTimeout(function () {
moveDot(dot,++i);
}, 250);
});
});
我更喜欢这样的解决方案:
function moveDot(elm,index) {
elm.animate({left: '370px'}, {duration: 3000*index, queue: false, done: function() {
elm.animate({left: '0px'}, {duration: 3000*index, queue: false, done: function() {
moveDot(elm,index)
}});
}});
}
$(function() {
$(".line").each(function(i) {
var dot = $(this).find('.dot');
setTimeout(function () {
moveDot(dot,++i);
}, 250);
});
});
好啊我检查了这把小提琴,它看起来不错。但我发现了一些我认为应该引起你们注意的东西。只是出于好奇。。转到“小提琴链接”并运行动画。看起来不错。现在,点击另一个标签,再次点击小提琴链接,你会看到大部分的动画应该得到的对齐…我不知道为什么???好。。我检查了这把小提琴,它看起来不错。但我发现了一些我认为应该引起你们注意的东西。只是出于好奇。。转到“小提琴链接”并运行动画。看起来不错。现在点击另一个标签,再次点击小提琴链接,你会看到大部分的动画到期日对齐…我不知道为什么???不,这将动画.dot
越来越慢,我需要在每个.dot
上都有相同的动画持续时间。谢谢首次亮相。我稍后会尝试更正我的代码,但我对我发现的一些奇怪的东西有点好奇。请检查上面的提琴建议,它看起来不错。但我发现了一些我认为应该引起你们注意的东西。只是出于好奇。。转到“小提琴链接”并运行动画。看起来不错。现在点击另一个标签,再次点击提琴链接,你会看到大部分的动画应该得到的对齐…我不知道为什么???你不必编辑你的代码后,我已经有了解决方案由肖纳克D作为答案以上。是的,我知道标签的错误,我不知道它可能是什么,但我已经得到了我想要的一切。不,这将使.dot
的动画速度越来越慢,并且我需要在每个.dot
上都有相同的动画持续时间。谢谢首次亮相。我稍后会尝试更正我的代码,但我对我发现的一些奇怪的东西有点好奇。请检查上面的提琴建议,它看起来不错。但我发现了一些我认为应该引起你们注意的东西。只是出于好奇。。转到“小提琴链接”并运行动画。看起来不错。现在点击另一个标签,再次点击提琴链接,你会看到大部分的动画应该得到的对齐…我不知道为什么???你不必编辑你的代码后,我已经有了解决方案由肖纳克D作为答案以上。是的,我知道有标签的bug,我不知道它可能是什么,但我已经得到了我想要的一切。