3
我有一個顯示onclick鏈接的div,我想在div外部單擊鼠標時隱藏(類似於大多數模式框功能) - 問題在於當用戶使用瀏覽器滾動條,被認爲是一個點擊隱藏DIV當使用滾動條時阻止mousedown功能
這是我用它來顯示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
我看到你從這個想法來,但它不工作 - 當滾動事件,因爲滾動變量設置爲true執行(無論是通過js,鼠標滾輪還是瀏覽器滾動條),並且mousedown事件基於過去的滾動獲取變量狀態,而不是當前狀態 – GrandVizier 2011-04-20 20:39:22