Я использую SimpleModal (http://www.ericmmartin.com/projects/simplemodal/), и у меня есть форма, которая отображается в диалоговом окне. То, что я хочу сделать, смочь иметь подтверждение, подходят каждый раз, когда пользователь пытается закрыть диалоговое окно (или Escape или нажатием на близкий значок) и спрашивает их, если они действительно хотят закрыть его, не сохраняя данные формы. Я попробовал следующее:
onClose: function (dialog) {
if (confirm('Are you sure you want to close without saving?')) {
$.modal.close();
}
}
Но это только инициировало однажды. Если Вы совершаете нападки, отмене затем не удается закрыться снова позже, который отчасти имеет смысл. У кого-либо есть предложение или решение? Любая справка значительно ценилась бы.:)
Я также смотрел на источник и когда включен
Событие выполняется olcb
флаг флаг.
Что вы можете попробовать (я не пробовал) - это переопределить это octb
, поскольку он передается в это
, переменной:
onClose: function (dialog) {
if (confirm('Are you sure you want to close without saving?')) {
$.modal.close();
}else{
this.occb = false;
}
}
Надеюсь, это поможет.
Я посмотрел на источник Simplemodal
для вас и то, что вы хотите сделать, не может быть сделано с их кодом. Вот почему:
просто до вызова вашего пользовательского обратного вызова OnClose
это называет следующим образом:
s.unbindEvents();
, которые эффективно говорит: «Этот ящик собирается закрыть, нравится вам это или нет». Это не как обычный обратный вызов, который вы можете отменить.
Я бы порекомендовал вместо этого, используя диалоговое окно jQuery UI Dialog , который вы должны найти Super легко для реализации этой функциональности, используя их BEFORECLOSE
обратного вызова. Вы просто использовали бы:
beforeclose: function(){
return confirm('Are you sure you want to close without saving?')
}
Я получил эту работу, используя вроде того, что пытался jerone, но также повторно связывал события:
onClose: function (dialog) {
if (confirm('Are you sure you want to close without saving?')) {
$.modal.close();
}else{
this.occb = false;
this.bindEvents();
}
}
Этот плагин необходимо обновить, чтобы поддержать отмену события закрытия. Похоже, это на самом деле не рассматривается как событие в коде. Я бы хотел, чтобы он вел себя как любое другое событие js.