Я искал альтернативу javascript «подтвердить (вы уверены?)» по умолчанию.

Давайте установим сцену:

Это была темная и штормливая ночь…

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

Когда на улице лил дождь. Напряжение росло. От удара грома сотряслись окна! И, возможно, что-то гремело в голове у разработчика!

Он понял: «Я могу использовать обратные вызовы для передачи любой функции…»

Собираем кнопку быстрого тестирования:

$("#show-message").click(function(){
    messageConfirm($("#show-message"), removeShowMessage);
});

Наш бесстрашный разработчик доказал, что клавиатура сильнее меча!

Еще одной маленькой функцией он доказал, что покажет этой ужасной кнопке, кто в доме хозяин!

function removeShowMessage(_jElement){
    _jElement.remove();
}

Внезапно... Отбой... КАК?! Как вы динамически создаете диалоговое окно пользовательского интерфейса?

Он понял, что простое добавление поможет! Затем прикрепите прослушиватель к каждой кнопке.

function messageConfirm(_jElement, callback){
    var confirmationMessage = '<div>Are you sure? <button class="confirm">YES</button><button class="cancel">NO</button>';
 $("#message").html(confirmationMessage).fadeIn("slow", function(){
  $("#message button.confirm").click(function(){
   console.log("Confirmed.");
   callback(_jElement);
   clearMessage();
  });
  $("#message button.cancel").click(function(){
   console.log("Cancelled.");
   clearMessage();
  });
 });
}

И, наконец, избавиться даже от мысли об этой противной кнопке «Показать сообщение»…

function clearMessage(){
    $("#message").fadeOut("slow");
}

Недолгими были труды и хлопоты этого озадачивающего и в целом раздражающего облегчения подтверждения по умолчанию. Но в итоге разработчик всегда побеждает!

Почему это круто:

Во-первых, этот шаблон позволит отслеживать объект jQuery, с которым мы хотим действовать. Во-вторых, мы можем отправить любую функцию обратного вызова в команду confirmMessage. Эти два действия допускают большое разнообразие в использовании. Скажем, нам нужно загрузить какой-то новый JSON или обновить какой-нибудь JSON. после подтверждения удаления объекта. Это позволит нам выполнять сложную функциональность для любых элементов страницы с помощью всего нескольких функций.

Вот JS Fiddle, чтобы подтвердить концепцию»: https://jsfiddle.net/jroel/b1ohm3ya/3/

Удачного программирования!