Почему в консоли пишет:
Uncaught TypeError: commercialOfferModal.close is not a function
Почему в данном коде self или commercialOfferModal является undefined?
Если commercialOfferModal.close(); вызывать снаружи функции commercialOfferModal, то всё срабатывает, а изнутри нет. Потому что commercialOfferModal является undefined?
(function commercialOfferModal(){
var self = this;
$('.commercial-offer-modal_open').click(function(){
$('.commercial-offer-modal__overlay').fadeIn(300);
$('.commercial-offer-modal__content').animate({'right': "0"}, 300);
});
$('.commercial-offer-modal_close').click(function(){
self.close();
});
$('.commercial-offer-modal__overlay').click(function(){
self.close();
});
})();
commercialOfferModal.close = function(){
$('.commercial-offer-modal__overlay').fadeOut(200);
$('.commercial-offer-modal__content').animate({'right': "-704px"}, 300);
$('input').removeClass('error');
$('p.error-text ').text('');
};
Измените Ваш код с:
commercialOfferModal.close = function(){
на:
commercialOfferModal.prototype.close = function(){
Проблема в том, что вы добавляете метод к объекту, а не к экземпляру commercialOfferModal. Другими словами, метод будет доступен по полной ссылке commercialOfferModal.close и дальше, но не доступен через this, так как другая область видимости
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости