0

我是 javascript 的新手,但通常可以应付。在这种情况下,我在执行代码的下一部分之前提交的第一部分代码有问题。这个想法是触发一次点击,等待 5 秒,然后触发对列表中下一个元素的点击。如果我单独运行这些,一次一个,它可以正常工作。如果我一起运行这些,就好像第一次点击甚至没有发生。我正在努力模拟对 MicroStrategy Dossier 的一些点击。一旦这工作,我将通过首先计算元素来动态迭代所有 div 项。

任何帮助/建议表示赞赏。

var t1 = new Date();
var t2 = new Date();
var dif = 0;

//Click first element in the list
var n = "div.item[idx=\"0\"]";
$('div.scroll-container.mstrmojo-scrollNode').find(n).each(function(){
        $(this).trigger('click');   
            });

//wait  5 seconds
t2 = new Date();
        dif = t1.getTime() - t2.getTime();
            while(dif < 5000){
                t2 = new Date();
                dif = t2.getTime() - t1.getTime();  
            };

//Click second element in the list
var n = "div.item[idx=\"1\"]";
$('div.scroll-container.mstrmojo-scrollNode').find(n).each(function(){
        $(this).trigger('click');   
            });
4

1 回答 1

0

JavaScript 不会在您的代码中等待 5 秒,然后再进行下一部分。您必须将第二次单击放在 setTimeout 内:

setTimeout(function(){ 
    //Click second element in the list
    var n = "div.item[idx=\"1\"]";
    $('div.scroll-container.mstrmojo-scrollNode').find(n).each(function(){
        $(this).trigger('click');
    });
}, 5000);
于 2018-06-08T18:57:49.173 回答