如何在显示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);
});
另一种方法是使用一种与模态替换confirm()
箱库,从而使任何时候UI都可以*更新。
谢谢,我会考虑这个。 – Sergey
https://jsfiddle.net/9xa7pwvw/1/ 虽然需要更改处理。 – Sergey