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

3

这里是 jsFiddle 链接: https://jsfiddle.net/67kaphgu/

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

简而言之,我想强调一些元素并在继续进行之前请求确认。但是在confirm() 调用返回,该元素会更改其样式。
1个回答

6
问题是因为confirm()调用阻塞了UI线程的更新。解决方法是将confirm()调用放入一个带有非常短延迟的setTimeout()中:
$(document).ready(function(){
  $("div").css("background-color", "red");
  setTimeout(function() {
      confirm("Background not yet changed");
  }, 50);
});

更新的 JSFiddle

另一种选择是使用一个库,将 confirm() 对话框替换为模态框,这样 UI 就可以在任何时候更新。


谢谢,我会考虑这个建议。 - Sergey
https://jsfiddle.net/9xa7pwvw/1/ 的内容需要进行处理更改。 - Sergey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接