Как остановить выполнение в состоянии jConfirm в jquery-alerts.js
Пожалуйста, проверьте следующий код:
Я не хочу казнить alert('End');
перед подтверждением диалогового окна подтверждения.
<link href="http://labs.abeautifulsite.net/archived/jquery-alerts/demo/jquery.alerts.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script src="http://labs.abeautifulsite.net/archived/jquery-alerts/demo/jquery.alerts.js"></script>
<script type="text/javascript">
$(document).ready( function() {
$("#confirm_button").click( function() {
alert('Start');
jConfirm('Can you confirm this?', 'Confirmation Dialog', function(r) {
if(r){alert('Ok');}else{alert('Cancel');}
});
alert('End');
});
});
</script>
<fieldset>
<legend>Confirm</legend>
<p>
<input id="confirm_button" type="button" value="Show Confirm">
</p>
</fieldset>
1 ответ
Вы не можете остановить выполнение кода, когда вы вызываете асинхронные функции (например, jConfirm в этом случае, другой всплывающий пример: ajax()
).
Когда вы работаете с асинхронными функциями, вы также должны работать с функциями обратного вызова.
Код, который должен быть выполнен после закрытия диалога, должен войти в function(r) { ... }
- все остальное будет выполняться параллельно.
jConfirm('Can you confirm this?', 'Confirmation Dialog', function(r) {
if(r){alert('Ok');}else{alert('Cancel');}
// Put your code here and it will be executed when the dialog is closed.
});
<link href="http://labs.abeautifulsite.net/archived/jquery-alerts/demo/jquery.alerts.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script src="http://labs.abeautifulsite.net/archived/jquery-alerts/demo/jquery.alerts.js"></script>
<script type="text/javascript">
$(document).ready( function() {
$("#confirm_button").click( function() {
alert('Start');
jConfirm('Can you confirm this?', 'Confirmation Dialog', function(r) {
if(r){alert('Ok');}else{alert('Cancel');}
alert('End');
});
});
});
</script>
<fieldset>
<legend>Confirm</legend>
<p>
<input id="confirm_button" type="button" value="Show Confirm">
</p>
</fieldset>