03.11.2015, 18:40
|
Новичок на форуме
|
|
Регистрация: 03.11.2015
Сообщений: 3
|
|
Как закрыть всплывающее окно ?
Необходимо изменить код так, чтобы окно закрывалось не только на крестик, но и на блок подложки.
Имеется отрывок кода:
init: function() {
jQuery('body').prepend('<div id="pn_advanced_wp_popup_mdf"></div>');
jQuery('body').prepend('<div id="alert_advanced_wp_popup"></div>');
jQuery('body').prepend('<div id="advanced_wp_popup_overlay"></div>');
//***
try {
jQuery('.pn_ig_wp_popup_close_mdf').life('click', function() {
self.close(jQuery(this));
});
jQuery('.pn_ig_wp_popup_close_mdf').life('click', function() {
self.close(jQuery(this));
});
} catch (e) {
}
}
Где кнопка закрытия окна это .pn_ig_wp_popup_close_mdf, как сделать чтобы при нажатии и кнопки .pn_ig_wp_popup_close_mdf и блока #advanced_wp_popup_overlay окно закрывалось ?
Код целиком:
var PN_ADVANCED_WP_POPUP_MDF = function() {
var self = {
zindex: 9900,
popup_li: null,
params: null,
init: function() {
jQuery('body').prepend('<div id="pn_advanced_wp_popup_mdf"></div>');
jQuery('body').prepend('<div id="alert_advanced_wp_popup"></div>');
jQuery('body').prepend('<div id="advanced_wp_popup_overlay"></div>');
//***
try {
jQuery('.pn_ig_wp_popup_close_mdf').life('click', function() {
self.close(jQuery(this));
});
jQuery('.pn_ig_wp_popup_close_mdf').life('click', function() {
self.close(jQuery(this));
});
} catch (e) {
}
},
popup: function(params) {
params = self.validate_params(params);
jQuery('#pn_advanced_wp_popup_mdf').append('<div class="pn_advanced_wp_popup_li" style="width:' + params.width + 'px;margin-left:-' + params.width / 2 + 'px;">');
this.popup_li = jQuery('#pn_advanced_wp_popup_mdf div:last-child');
jQuery(this.popup_li).css('z-index', self.zindex++);
jQuery(this.popup_li).append('<div class="advanced_wp_popup_container" style="width:' + params.width + ';">');
jQuery(this.popup_li).append('<div class="advanced_wp_popup_buttons">');
var popup = jQuery(this.popup_li).find('.advanced_wp_popup_container');
/***/
if (params.title.length > 0) {
popup.append('<div class="pn_titlebar" />');
popup.children('.pn_titlebar').append('<h6>').children('h6').html(params.title);
popup.children('.pn_titlebar').append('<a href="javascript:void(0);" class="pn_ig_wp_popup_close_mdf"></a>');
}
/***/
jQuery(popup).append('<div class="advanced_wp_popup_content">');
jQuery(popup).find('.advanced_wp_popup_content').html(params.content);
try {
jQuery(this.popup_li).draggable({
handle: '.pn_titlebar'
});
} catch (e) {
}
jQuery(this.popup_li).fadeTo(200, 1);
self.overlay(params.overlay, self.zindex - 1);
//***
self.open(params, this.popup_li);
},
overlay: function(mode, zindex) {
jQuery('#advanced_wp_popup_overlay').css('z-index', zindex);
if (mode) {
jQuery('#advanced_wp_popup_overlay').show();
} else {
jQuery('#advanced_wp_popup_overlay').hide();
}
},
open: function(params, popup_li) {
self.params = params;
jQuery.each(params.buttons, function(index, button) {
if (button.action == 'close') {
jQuery(popup_li).find('.advanced_wp_popup_buttons').append('<a href="javascript:void(0);" class="pn_button pn_ig_wp_popup_close_mdf">' + button.name + '</a>');
return;
}
//*****
if (button.display == 'undefined') {
button.display = 'inline-block';
}
if (button.close) {
jQuery(popup_li).find('.advanced_wp_popup_buttons').append('<a href="javascript:pn_advanced_wp_popup_mdf.do_action(' + index + ');void(0);" data-name="' + button.name + '" class="pn_button pn_ig_wp_popup_close_mdf" style="display:' + button.display + ';">' + button.name + '</a>');
} else {
jQuery(popup_li).find('.advanced_wp_popup_buttons').append('<a href="javascript:pn_advanced_wp_popup_mdf.do_action(' + index + ');void(0);" data-name="' + button.name + '" class="button" style="display:' + button.display + ';">' + button.name + '</a>');
}
});
//***
if (params.open !== undefined) {
params.open();
}
},
set_title: function(title) {
jQuery(this.popup_li).find('.advanced_wp_popup_container .pn_titlebar h6').html(title);
},
show_button: function(name) {
jQuery('#pn_advanced_wp_popup_mdf').find('.advanced_wp_popup_buttons').find("a[data-name*='" + name + "']").css('display', 'inline-block');
},
get_content: function() {
return jQuery(this.popup_li).find('.advanced_wp_popup_content').html();
},
set_content: function(html) {
return jQuery(this.popup_li).find('.advanced_wp_popup_content').html(html);
},
set_height: function(height, animate, animation_time, opacity) {
if (animate) {
jQuery(this.popup_li).find('.advanced_wp_popup_content').animate({
opacity: opacity,
height: "toggle"
}, animation_time);
} else {
jQuery(this.popup_li).find('.advanced_wp_popup_content').css('height', height);
}
},
close: function(_this) {
var popup = jQuery(_this).parents('div.pn_advanced_wp_popup_li');
window.setTimeout(function() {
jQuery(popup).fadeOut(0, function() {
jQuery(this).remove();
self.overlay(0);
});
}, 100);
},
do_action: function(index) {
jQuery.each(this.params.buttons, function(i, button) {
if (i == index) {
button.action(self);
if (button.close !== undefined) {
if (button.close == 1) {
//TODO
}
}
return false;
}
});
},
validate_params: function(params) {
if (params.title === undefined) {
params.title = "";
}
if (params.overlay === undefined) {
params.overlay = 0;
}
if (params.width === undefined || params.width === null) {
params.width = 800;
}
if (params.buttons === undefined) {
params.buttons = {
0: {
name: mdf_lang_cancel,
action: 'close'
}
};
}
return params;
}
};
return self;
};
//*****
var pn_advanced_wp_popup_mdf = null;
jQuery(document).ready(function() {
pn_advanced_wp_popup_mdf = new PN_ADVANCED_WP_POPUP_MDF();
pn_advanced_wp_popup_mdf.init();
});
|
|
03.11.2015, 23:28
|
|
Профессор
|
|
Регистрация: 30.04.2012
Сообщений: 3,018
|
|
Сообщение от Tema_Ka
|
life
|
li ve
Какой ужас тут происходит в коде, где такому обучаются? За такое бы руки отрывать.
Последний раз редактировалось ruslan_mart, 03.11.2015 в 23:33.
|
|
04.11.2015, 11:55
|
|
Профессор
|
|
Регистрация: 15.01.2015
Сообщений: 622
|
|
Сообщение от Ruslan_xDD
|
где такому обучаются
|
Представьте человека, который немного представляет что такое html и css (благо на это нужно немного времени). И вот этот человек получает заказ на создание полноценного сайта с регистрацией, соц. кнопками, форумом, чатом и т.д.. И если у человека нет знакомых серверных разрабов, то где он должен брать информацию? Естественно он будет гуглить по каждому вопросу и главное сделать, чтобы хоть как то работало.
|
|
04.11.2015, 12:28
|
|
Профессор
|
|
Регистрация: 30.04.2012
Сообщений: 3,018
|
|
EmperioAf, это очень плохо. Человек заказывает сайт, он ничего не понимает в программировании и не понимает как дерьмово плохо его сайт сделан изнутри. А это ведь производительность, и не только. И самое печальное, что таким программистам, которые знают только основы HTML 4, платят вполне адекватную зарплату. Собственно, зачем изучать программирование и все его тонкости, когда можно тупо вставлять готовые куски кода на jQuery? Ведь на это много ума не нужно.
|
|
04.11.2015, 13:16
|
Новичок на форуме
|
|
Регистрация: 03.11.2015
Сообщений: 3
|
|
Сообщение от Ruslan_xDD
|
EmperioAf, это очень плохо. Человек заказывает сайт, он ничего не понимает в программировании и не понимает как дерьмово плохо его сайт сделан изнутри. А это ведь производительность, и не только. И самое печальное, что таким программистам, которые знают только основы HTML 4, платят вполне адекватную зарплату. Собственно, зачем изучать программирование и все его тонкости, когда можно тупо вставлять готовые куски кода на jQuery? Ведь на это много ума не нужно.
|
Ни кто ни чего не заказывал, я пишу сайт для себя, в свое удовольствие. На получение объемных знаний языков программирования нужно большое количество времени, к чему я непременно приду, но не сразу. Ruslan_xDD, зато, смотрю у тебя очень много ума и появился он сразу при рождении.
|
|
04.11.2015, 13:26
|
|
Профессор
|
|
Регистрация: 30.04.2012
Сообщений: 3,018
|
|
Сообщение от Tema_Ka
|
Ruslan_xDD, зато, смотрю у тебя очень много ума и появился он сразу при рождении.
|
А что Вы хотели услышать, выкладывая свой код во всеобщий доступ? Это форум, умейте выслушать критику. Я вёл беседу с EmperioAf, и конкретно про Вас я ничего плохого не сказал. Да и на "ты" мы не переходили.
Последний раз редактировалось ruslan_mart, 04.11.2015 в 13:29.
|
|
04.11.2015, 13:40
|
Новичок на форуме
|
|
Регистрация: 03.11.2015
Сообщений: 3
|
|
Сообщение от Ruslan_xDD
|
А что Вы хотели услышать, выкладывая свой код во всеобщий доступ? Это форум, умейте выслушать критику. Я вёл беседу с EmperioAf, и конкретно про Вас я ничего плохого не сказал. Да и на "ты" мы не переходили.
|
Выкладывая "свой" код во всеобщий доступ, я лишь хотел услышать, как его доработать под мои нужны, потому как я перепробовал очень многое, но пока не могу найти ответ. Хотя, думаю, для профи это вообще не задача.
|
|
|
|