如何检查mousedown事件不是在JavaScript中滚动

时间:2012-02-02 23:17:48

标签: javascript

这是我的代码:

// Close the bubble when we click on the screen.
document.addEventListener('mousedown', function (e) {
// if ain't right click
if(e.button != 2){
    // hide
    setTimeout("bubbleDOM.style.visibility = 'hidden';", 500);
}
}, false);

我的问题是,当用户尝试使用浏览器滚动滚动时 setTimeout生效。如何检查mousedown不在滚动条中?

1 个答案:

答案 0 :(得分:0)

确保按钮保持不变并确保它不是冒​​泡事件,而不仅仅是因为它不正确。我建议在setTimeout中使用一个函数,所以:

// Close the bubble when we click on the screen.
document.body.addEventListener('mousedown', function(e) {
    // If it's a left click and the target is the current target
    if(e.button === 1 && e.target === e.currentTarget) {
        // hide
        setTimeout(function() {
            bubbleDOM.style.visibility = 'hidden';
        }, 500);
    }
}, false);