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秒才能完成。我不认为这是常见的情况,只是最坏的情况。