将onclick事件侦听器添加到并发事件

时间:2015-04-10 13:25:34

标签: jquery onclick popup jquery-events

我想创建一个简单的弹出例程,使用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');
    }
}

但是当第一次调用此函数时,背景会变暗并弹出窗口显示,但会立即淡出。怎么了?

1 个答案:

答案 0 :(得分:2)

在这种情况下

$(overlayclass).click(popup(popupclass, overlayclass));

当函数参数作为参数传递给它执行的click事件并立即调用

所以调用这个函数

$(overlayclass).click( function() { 
 popup(popupclass, overlayclass) 
});