Javascript jquery强制内部延迟。每个循环和触发器单击()
尝试一些自动化,我知道有一些工具,但这是自我学习。 我的目标是迭代页面底部的分页气泡,并触发“a”标记的click()。如果气泡处于活动状态,请找到下一个气泡并单击它。延迟部分未发生,请按以下方式尝试Javascript jquery强制内部延迟。每个循环和触发器单击(),javascript,jquery,Javascript,Jquery,尝试一些自动化,我知道有一些工具,但这是自我学习。 我的目标是迭代页面底部的分页气泡,并触发“a”标记的click()。如果气泡处于活动状态,请找到下一个气泡并单击它。延迟部分未发生,请按以下方式尝试setTimeout()和delay() 这是控制台出来的,没有任何延迟,新的客户端编码,请指导我 据我所知,延迟-函数仅适用于现有队列,如效果队列,我猜addClass(…)和removeClass(…)不是其中的一部分。所有类型的jQuery动画(如animate(…),slideUp(…)等
setTimeout()
和delay()
这是控制台出来的,没有任何延迟,新的客户端编码,请指导我
据我所知,
延迟
-函数仅适用于现有队列,如效果队列,我猜addClass(…)
和removeClass(…)
不是其中的一部分。所有类型的jQuery动画(如animate(…)
,slideUp(…)
等)都是效果队列(延迟的默认队列)的一部分
因此,对于您的情况,您应该使用通常的超时
因此,您的代码可以重写为
$('div.some-class a').each(function(index, item) {
console.log($(this).text());
if ($(this).hasClass('Pagination__active')) {
console.log('yeah active');
$(this).next().click();
setTimeout(
function() {
//do something special
}, 3000);
}
setTimeout(()=>$(this).addClass('position'), 3000);
});
注意:通过使用函数的lambda表示法,上下文(此
)与周围块中的上下文保持相同(例如,它不会创建额外的闭包)。您可以执行以下操作:
$('div[class=“some class”]')。查找('a')。每个(函数(索引,项){
变量$this=$(this)
var$next=$this.next()
设置超时(
函数(){
log($this.text());
if($this.hasClass('Pagination\uu active')){
console.log('yeahactive');
$this.click(单击($next));
log(“做点什么”)
返回
}
console.log(“notactive”)
}(指数)*3000);
});
单击功能(el){
el.css(‘背景色’、‘红色’);
}
活跃的
!活跃的
!活跃的
!活跃的
!活跃的
!活跃的
活跃的
!活跃的
!活跃的
!活跃的
延迟正在工作,但$this.next().单击();这不是真的@sajanyamaha你可以再试一次。我更新了它。没有太多变化,似乎它起作用了实际上我做了一个小的变化,它起作用了,$this.next()[0]。单击();没有区别,没有延迟。没有延迟什么?也许点击会立即改变你想要延迟的事情?
$('div.some-class a').each(function(index, item) {
console.log($(this).text());
if ($(this).hasClass('Pagination__active')) {
console.log('yeah active');
$(this).next().click();
setTimeout(
function() {
//do something special
}, 3000);
}
setTimeout(()=>$(this).addClass('position'), 3000);
});