2016-11-04 65 views
1

我有一个弹出窗口,我想添加溢出隐藏到身体一旦弹出窗口显示,当它隐藏我将它改回滚动。弹出窗口通过第三方插件插入,唯一的JavaScript文件是我的主题之一。我目前得到这个添加溢出隐藏到身体

$("div").click(function() { 
    if ($('body').css('overflow-y') == "hidden") { 
     $("body").css("overflow-y", "scroll"); 
    } 
}); 

$("#inline").click(function() { 
    $("body").css("overflow-y", "hidden"); 
}); 

我刚刚使用的全局div隐藏它,因为该插件在最后添加。如果我只使用第二个函数,它会根据需要将隐藏的内容添加到主体中,但是如果我包含第一个函数,它将覆盖第二个函数,并且只允许一直滚动。任何想法如何我可以解决这个问题?

+0

是否使用的是第三方插件,此元素的父点击事件?通常,显示弹出窗口/模式对话框的插件将会引发一些事件。检查您是否可以处理弹出式显示/弹出式关闭等事件 –

回答

0

这将是因为你的元素id inline嵌套在div中。您需要停止从propogating使用e.stopPropogation();

使用

$("div").click(function() { 
    if ($('body').css('overflow-y') == "hidden") { 
     $("body").css("overflow-y", "scroll"); 
    } 
}); 
$("#inline").click(function(e) { 
    e.stopPropogation(); 
    $("body").css("overflow-y", "hidden"); 
});