如何在显示confirm()对话框之前立即强制jQuery中的样式更改?

问题描述:

这里的jsfiddle链接:https://jsfiddle.net/67kaphgu/如何在显示confirm()对话框之前立即强制jQuery中的样式更改?

$(document).ready(function(){ 
    $("DIV").css("background-color","red"); 
    confirm("Background not yet changed"); 
}); 

总之,我想强调的一些元素,让你确认,然后再继续。但该元素在confirm()调用返回后更改其样式

问题是因为confirm()调用阻止UI线程更新。一个解决办法是放在一个setTimeout()confirm()电话用很短的延迟:

$(document).ready(function(){ 
    $("div").css("background-color", "red"); 
    setTimeout(function() { 
     confirm("Background not yet changed"); 
    }, 50); 
}); 

Updated fiddle

另一种方法是使用一种与模态替换confirm()箱库,从而使任何时候UI都可以*更新。

+0

谢谢,我会考虑这个。 – Sergey

+0

https://jsfiddle.net/9xa7pwvw/1/ 虽然需要更改处理。 – Sergey