Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.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 刷新单击事件之间的DOM_Javascript_Jquery - Fatal编程技术网

Javascript 刷新单击事件之间的DOM

Javascript 刷新单击事件之间的DOM,javascript,jquery,Javascript,Jquery,我有点击事件: $('#undoAll').click(function(){ $('#prospectTable tbody tr td a:not(.invisible)').each(function(){ $(this).trigger('click'); }) }); 它调用单个单击事件 上面代码中的内部单击事件对DOM进行更改。我希望这些更改出现在每个单独的内部单击事件之后,以便用户可以看到正在发生的事情(外部单击事件可能需要30秒才能完成) 不幸的

我有点击事件:

$('#undoAll').click(function(){
    $('#prospectTable tbody tr td a:not(.invisible)').each(function(){
        $(this).trigger('click');
    })
});
它调用单个单击事件

上面代码中的内部单击事件对DOM进行更改。我希望这些更改出现在每个单独的内部单击事件之后,以便用户可以看到正在发生的事情(外部单击事件可能需要30秒才能完成)

不幸的是,在处理所有单击事件之前,不会对DOM进行任何更改

我能做些什么来强制DOM在每次内部单击后刷新


任何帮助都将不胜感激。

经过数小时的试验,以下各项似乎完全达到了预期效果

$('#undoAll').click
(
    function()
    {
        if($('#prospectTable tbody tr td a:not(.invisible)').length > 0)
        {
            $('#prospectTable tbody tr td a:not(.invisible)').first().click();
            setTimeout
            (
                function()
                {
                    $('#undoAll').click();
                }, 1
            );
        };
    }
);

问题似乎是,在单击事件完成之前,不会重新绘制或刷新DOM。setTimeout允许一次点击事件结束(允许重画),同时设置另一次。

这是一次大量的屏幕重排。为什么不让它在需要的时候自然地重新绘制/刷新,并感到高兴呢?这取决于那些点击处理程序的功能。你可以考虑使用延迟对象+<代码> SETTIMEOUT。你有一个UI动作,需要30秒???@ MyLeTIC-我最多可以有200个链接。与其强迫用户点击每一个,我希望他能够点击一个链接,然后点击其他链接。我还希望DOM在每次单击后都能刷新,就像他确实单击了每个链接一样。200个单独的事件可能需要30秒才能完成。我不认为这是常见的情况,只是最坏的情况。