Це, IMHO, найбільш загальне і надійне рішення (якщо ваші дії викликаються користувачем, наприклад, "користувач натискає кнопку"):
- перший раз, коли обробник викликається, перевірити, хто його викликав:
- якщо користувач налаштував його - зробіть ваші речі, а потім повторіть його (якщо хочете) - програмно
- в іншому випадку - нічого не робити (= "продовжити за замовчуванням")
Як приклад, відзначте це елегантне рішення, додавши "Ви впевнені?" спливаюче вікно до будь-якої кнопки, просто прикрасивши кнопку з атрибутом. Ми умовно продовжимо поведінку за замовчуванням, якщо користувач не відмовиться.
1. Додамо до кожної кнопки, що нам потрібен спливаючий текст "Ви впевнені":
<button class="btn btn-success-outline float-right" type="submit" ays_text="You will lose any unsaved changes... Do you want to continue?" >Do something dangerous</button>
2. Приєднайте обробники до ВСІХ таких кнопок:
$('button[ays_text]').click(function (e, from) {
if (from == null) { // user clicked it!
var btn = $(this);
e.preventDefault();
if (confirm() == true) {
btn.trigger('click', ['your-app-name-here-or-anything-that-is-not-null']);
}
}
// otherwise - do nothing, ie continue default
});
Це воно.