Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery强制内部延迟。每个循环和触发器单击()_Javascript_Jquery - Fatal编程技术网

Javascript jquery强制内部延迟。每个循环和触发器单击()

Javascript jquery强制内部延迟。每个循环和触发器单击(),javascript,jquery,Javascript,Jquery,尝试一些自动化,我知道有一些工具,但这是自我学习。 我的目标是迭代页面底部的分页气泡,并触发“a”标记的click()。如果气泡处于活动状态,请找到下一个气泡并单击它。延迟部分未发生,请按以下方式尝试setTimeout()和delay() 这是控制台出来的,没有任何延迟,新的客户端编码,请指导我 据我所知,延迟-函数仅适用于现有队列,如效果队列,我猜addClass(…)和removeClass(…)不是其中的一部分。所有类型的jQuery动画(如animate(…),slideUp(…)等

尝试一些自动化,我知道有一些工具,但这是自我学习。 我的目标是迭代页面底部的分页气泡,并触发“a”标记的click()。如果气泡处于活动状态,请找到下一个气泡并单击它。延迟部分未发生,请按以下方式尝试
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);
});