使用滚动条时阻止mousedown功能

时间:2011-04-20 18:45:30

标签: jquery onmousedown

我有一个div显示onclick的链接,我想在div外部点击鼠标时隐藏(类似于大多数模态框功能) - 问题是当用户使用浏览器滚动条时,被视为点击并隐藏div

这是我用来显示div

$('.trigger').click(function(e){
    e.preventDefault();
    open_slideout(this);
});

function open_slideout(el){
    $(document).unbind('mousedown');

    //code here to display the div if its not already shown

    //close on click-out
    $(document).bind('mousedown',function(){
        $(panel_id).removeClass('active').hide('fast');
        $(el).removeClass('active');
    });
    $('.panel.active').bind('mousedown',function(e){e.stopPropagation();});
    $('.trigger').bind('mousedown',function(e){e.stopPropagation();});
}

所以我设置了stopPropagation,如果他们在活动区域​​内单击,但就像我说的,如果他们使用滚动条,它会隐藏div

2 个答案:

答案 0 :(得分:2)

这似乎已经成功了:

$(document.body).bind('mousedown',function(){

答案 1 :(得分:0)

$(window).scroll(function(){
   scrolling = true;
});

/*other code */
$(document).bind('mousedown',function(){
if(!scrolling){
        $(panel_id).removeClass('active').hide('fast');
        $(el).removeClass('active');
}
    }).bind('mouseup',function(){ scrolling = false; })
/*other code */