В следующем коде окно подтверждения отображается перед обработкой addClass (т. Е. Safari 6.0.5). Можно ли убедиться, что addClass() отображается перед отображением поля подтверждения()?Можно ли сделать вывод, что 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>
Добавление класса не является асинхронным, поэтому оно будет добавлено до того, как будет выполнена следующая строка кода, так как для рендеринга я не уверен, что вы имеете в виду? – adeneo
Попробуйте положить 'confirm' в короткий' setTimeout' –
Я предлагаю предоставить JSFiddle, пожалуйста, – MonkeyZeus