div滚动条上的Jquery模糊事件
我有一个带滚动条的div。 使用Firefox时,当我点击滚动条向下拖动它以查看div列表时,模糊事件被触发并隐藏我设置为在模糊触发时隐藏的div。 使用滚动条时,如何防止模糊:
$("#mydiv").blur(function () { $('#mydiv').fadeOut(); console.log("fadeout blur"); });
我用以下方法显示这个div:
$('#mydiv').fadeIn();
当我尝试单击滚动条时,我希望div在隐藏时隐藏但不隐藏。
可能这就是你要找的东西
$(document).ready(function(){ $('#mydiv').fadeIn(); $("body").bind('click', function(ev) { var myID = ev.target.id; if (myID !== 'mydiv') { $('#mydiv').fadeOut(); } }); });
这将将click事件与body绑定,并检查触发click事件的元素的id。 如果它与DIV不匹配,div将被关闭,否则div将始终打开。
你可以这样做:
$(window).scroll(function() { $('#mydiv').css('display','block'); });
var scrolling = false, scrollingTimeout, blurTimeout; $(window).scroll(function () { if (scrollingTimeout) { clearTimeout(scrollingTimeout); } scrolling = true; scrollingTimeout = setTimeout(function(){ scrollingTimeout = null; scrolling = false; }, 300); }); $("#mydiv").blur(function () { var that = $(this); if (!scrolling) { that.fadeOut(); } else { if (blurTimeout) { clearTimeout(blurTimeout); } blurTimeout = setTimeout(function () { blurTimeout = null; that.focus(); }, 600); } });
看看jQuery scroll()检测用户何时停止滚动 , 我可以在jQuery上为滚动事件的开始和结束声明逻辑吗?
看起来你的滚动条没有在div中形成并点击它会导致调用模糊。 请检查用于显示div的用于显示滚动的css /样式正在做你期望的事情(在div中形成滚动条),如果是这种情况,则在两者(div和滚动条)上使用父div并使用focusOut / blur事件在包含两者的父div上。