2013-05-14 2 views
2

Я новичок в alertify.js. То, что я пытаюсь сделать, когда пользователь нажимает на ссылку, браузер должен показать окно подтверждения. если пользователь щелкнет, перейдите на следующую страницу. если пользователь нажимает кнопку «Отменить», оставайтесь на той же странице. Возможно ли это сделать, используя alertify.js. Вот мой html-код.Javascript Alertify wait for confirm, затем перейдите на другую страницу

<a href="index.php" class="alert">Logout</a> 

Это мой код javascript.

$(".alert").on('click', function(){ 
    alertify.confirm("Are you sure?", function (e) { 
     if (e) { 
      return true; 
     } else { 
      return false; 
     } 
    }); 
}); 

Но проблема в том, что всякий раз, когда я нажимаю на ссылку, я перейти на страницу index.php, прежде чем нажать на подтверждения. Пожалуйста, помогите мне, я застрял в течение нескольких дней. Заранее спасибо.

ответ

-1
$(".alert").on('click', function(){ 
    e.preventDefault(); 
    alertify.confirm("Are you sure?", function (e) { 
     if (e) { 
      //window.location...redirect 
     } else { 
      //do something 
     } 
    }); 
}); 

Вам не нужно возвращать истинным или ложным ... вы проверяете его уже в если заявление

+0

Это правильный путь, но вам нужно вызвать 'preventDefault()' на событие, чтобы остановить его от нормального поведения, и пусть '.confirm()' 's обратного вызова ручкой что делать – Ian

+0

Не препятствуйте поведению по умолчанию во внутреннем обратном вызове ... сделайте это для обратного вызова 'click' – Ian

+0

Большое спасибо за помощь. Теперь работает. –

6

Проблема заключается в том, что невозможно сделать код ждать. Итак, что вам нужно сделать, это отменить первоначальный щелчок и вызвать код для перехода на новую страницу.

$(".alert").on('click', function(e){ 
    e.preventDefault(); 
    var href = this.href; 
    alertify.confirm("Are you sure?", function (e) { 
     if (e) { 
      window.location.href = href; 
     } 
    }); 
}); 
+0

Большое спасибо. Это сработало. Благословит вас Бог: D –

Смежные вопросы