Jquery查找Event是否为滚动条单击

时间:2014-09-17 20:33:21

标签: jquery click scrollbar mouseup

我有一个场景,如果我点击div块的任何一边,我隐藏了Div块。

我正在使用Internet Explorer并测试该应用程序。如果没有滚动条我的代码工作正常。如果div块上有一个滚动条,那么当我点击滚动条时,它会认为滚动条不是div的一部分,它会隐藏div块。我试图保持div块打开,即使用户点击滚动条并进行滚动操作。

var $container = $(".toolbarBlock");

 $(document).mouseup(function (e) {
        if (!$container.is(e.target) // if the target of the click isn't the container...
            && $container.has(e.target).length === 0) // ... nor a descendant of the container
        {
            toolbarClose();
        }
    });

 function toolbarClose() {
    return $.when(slideOut($container));
 }

2 个答案:

答案 0 :(得分:25)

我想发布回答,以便对遇到同样问题的其他人有所帮助。

我用过:

e.target != $('html').get(0) // nor the scrollbar

var $container = $(".toolbarBlock");

$(document).mouseup(function (e) {
    if (!$container.is(e.target) // if the target of the click isn't the container...
        && ($container.has(e.target).length === 0) // ... nor a descendant of the container
        && (e.target != $('html').get(0))) // nor the scrollbar
    {
        toolbarClose();
    }
});

function toolbarClose() {
    return $.when(slideOut($container));
}

答案 1 :(得分:2)

jQuery中没有滚动条的点击事件。 http://forum.jquery.com/topic/click-event-for-scrollbar

但是有一个.scroll() http://api.jquery.com/scroll/

您可以收听滚动事件并显示容器。

因此,只要他们单击该元素就会隐藏该元素,但是当它们滚动时,您可以再次显示该元素。

不理想,但我的研究是唯一的选择。