2013-06-05 10 views
0

Я работаю на странице, которая имеет несколько уровней, используя knockoutjs и sammyjs.
, например. HOME/LEVEL1/LEVEL2/ТОК Я уже закончил функцию подтверждения:Подтвердить: закрыть текущую страницу, изменить URL-адрес, оставить текущую страницу

Как я могу сделать это нравится: когда люди хотят, чтобы оставить текущую страницу, то появится подтверждающее сообщение, чтобы убедиться, что они на самом деле хотят оставьте эту страницу (перейдите к HOME, LEVEL1, LEVEL2, .. или на самом деле закройте вкладку, измените URL-адрес) или нет.

ответ

0

В var app = $.sammy(function() {...}); добавить следующее:

// Will run at #/route but not at #/ 
this.before('#/route', function() { 
    if(!window.confirm('Are you sure you want to leave this page?')) { 
     return false; 
    } 
}); 

// will run at #/ but not at #/route 
this.before({except: {path: '#/route'}}, function() { 
    if(!window.confirm('Are you sure you want to leave the home page?')) { 
     return false; 
    } 
}); 

Источник: Sammy.Application before (options, callback)

+0

Спасибо за ваш ответ. Я знаю эту функцию, и кажется, что она почти завершена, но 1. как только вы нажмете «Отмена», страница все равно будет там, но URL-адрес будет изменен. 2. Я хочу получить подтверждение, показывающее только выход из этой конкретной страницы. – riceTale

+0

URL-адрес не изменится, если вы используете привязку кликов (jQuery, Knockout.js и т. Д.), А не тег привязки. Затем в рамках привязки кликов вы изменяете URL-адрес, если подтверждение принимает значение true. Поэтому возьмите код выше и поместите его внутри своей привязки, а не в Сэмми. – chrisjsherm

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