2014-01-14 2 views
0

Я хочу перехватить якорные клики и показать приглашение, если текст был изменен и не был отправлен в форме с помощью диалогового окна zebra. Для любой другой формы выхода страницы я использую встроенный диалог разгрузки браузера.Jquery перехватывание изменения привязки на странице

Вот код, который у меня есть до сих пор, показывает диалог, но независимо от того, какой вариант вы нажмете, вы останетесь на странице.

$("body").on("mousedown",'a', function(e) { 

    if(inputhaschanged) { 
     return $.Zebra_Dialog("You haven't submitted your comment. Do you wish to leave?", {'type':'question','title':'','buttons': [ 
       {caption: 'No', callback: function() { }}, 
       {caption: 'Yes', callback: function() { return true; }}] 
     }); 
    } 

});   
+2

выглядит как 'Zebra_Dialog' является метод асинхронной .. так что вы не можете сделать это, как это ... вам нужно вручную сделать страницу перенаправления на' Yes' обработчик –

+0

Спасибо @ ArunPJohny, вы имеете в виду что-то подобное в обратном вызове Yes? window.location.href = $ (this) .attr ("href"); – Martin

ответ

0

Одним из решений для этого является то, что вы отключите поведение по умолчанию для всей ссылки на своей странице, а затем проверьте ее модификацию. Также необходимо вызвать событие window.onbeforeunload, чтобы предотвратить другой способ навигации. Ссылка: how to stop page redirect How do you prevent a webpage from navigating away in JavaScript?

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