我想创建一个简单的弹出例程,使用overlay
类使背景变暗,并使用popup
类显示弹出窗口。我使这个功能成为一个切换功能。这里的技巧是我想将此函数附加到overlay
div,这样如果用户点击暗调暗背景,它将自动关闭弹出窗口(等于取消对话框)。
function popup (popupclass = ".popup", overlayclass = ".overlay") {
if (!$(overlayclass).is(':visible')) {
$(overlayclass).fadeTo('slow', 0.7);
$(popupclass).fadeTo('slow', 0.7);
$(popupclass).center();
$(overlayclass).click(popup(popupclass, overlayclass));
}
else {
$(overlayclass).fadeOut('slow');
$(popupclass).fadeOut('slow');
}
}
但是当第一次调用此函数时,背景会变暗并弹出窗口显示,但会立即淡出。怎么了?
答案 0 :(得分:2)
在这种情况下
$(overlayclass).click(popup(popupclass, overlayclass));
当函数参数作为参数传递给它执行的click事件并立即调用
所以调用这个函数
$(overlayclass).click( function() {
popup(popupclass, overlayclass)
});