Как остановить выполнение в состоянии 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>

Другие вопросы по тегам