функция по умолчанию $.fancybox.close
, так что я мог бы быть склонен сделать что-то подобное. ..
$.fancybox.originalClose = $.fancybox.close;
$.fancybox.close = function() {
// Do whatever you want. Then do the default behavior:
$.fancybox.originalClose();
};
это что-то взломать, но она имеет преимущества не требует каких-либо изменений в коде библиотеки или оригинальной разметки, не требуя, чтобы вы непосредственно манипулировали обработчиками событий, которые библиотека определяет, и автоматически вызывая ваш код независимо от того, как окно закрывается.
Чтобы изменить поведение только одной конкретной коробки, самое лучшее, чтобы установить modal
свойство true
(который будет отключить все встроенные методы для закрытия окна), а затем вы можете добавить свои собственные Кнопка «Сохранить» или «Закрыть», которая работает, как вы хотите. Коробка никогда не будет закрываться автоматически, но вы можете закрыть ее, когда будете готовы с функцией $.fancybox.close()
.
как я могу взять из установленного по умолчанию, и как я могу поместить его в том же месте? – Johnson
На самом деле, я просто понял, вам не нужно вынимать по умолчанию, вы можете использовать идентификатор по умолчанию, который является «fancybox-close», поэтому вместо $ ('# close_fancybox) просто используйте $ ('# fancybox-close') – Claudiu
Беда в том, что исходный обработчик событий (тот, который определен библиотекой) будет по-прежнему активным, и на самом деле он, вероятно, будет работать до вашего нового обработчика. Чтобы действительно иметь возможность * отменить * закрытие окна, вам нужно удалить этот обработчик (или полностью удалить соответствующую разметку). – VoteyDisciple