【发布时间】:2013-10-04 18:22:10
【问题描述】:
在以下代码中,确认框显示在 addClass 渲染之前(即 Safari 6.0.5)。是否可以确保 addClass() 在显示确认()框之前呈现?
<style type="text/css">
.preview { background-color: #eee;width:100;height:100;color:red; }
.preview_s { border:3px solid blue;}
</style>
<script type="text/javascript">
function test(i)
{
$("#testdiv"+i).addClass('preview_s');
if (confirm('border not blue and checkmark not visible on some browsers until after choice is made'))
{
// Do confirmed thing here
} else {
// Abort
}
}
</script>
<form id="testform">
<div class="preview" id="testdiv1">test1</div>
<input type="checkbox" onclick="test(1);">
<div class="preview" id="testdiv2">test2</div>
<input type="checkbox" onclick="test(2);">
</form>
【问题讨论】:
-
添加类不是异步的,所以会在下一行代码执行之前添加,至于渲染我不知道你的意思?
-
尝试将
confirm放在一个简短的setTimeout中 -
我建议请提供一个 JSFiddle
-
@MonkeyZeus 给你:JSFiddle
-
@Basic 我无法重现该问题,但看起来应该可以:jsfiddle.net/aenJ7
标签: javascript jquery addclass confirm