3

我有一个带有滚动条的 div。当我单击滚动条将其向下拖动以查看 div 列表时,使用 Firefox 会触发模糊事件并隐藏我设置为在触发模糊时隐藏的 div。使用滚动条时如何防止模糊触发:

$("#mydiv").blur(function () {
    $('#mydiv').fadeOut();
    console.log("fadeout blur");
});

我使用以下方法显示此 div:

 $('#mydiv').fadeIn();

我希望 div 在不活动时隐藏,但在我尝试单击滚动条时不隐藏。

4

4 回答 4

3

可能这就是你要找的

$(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 将始终打开。

于 2013-01-24T11:30:57.517 回答
1

你可以这样做:

$(window).scroll(function() {
   $('#mydiv').css('display','block');
});
于 2013-01-16T06:11:16.423 回答
1
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() 检测用户何时停止滚动Can I 在 jQuery 上声明滚动事件开始和结束的逻辑?

于 2013-01-19T18:15:25.363 回答
1

似乎您的滚动条没有在 div 中形成&单击它会导致调用模糊。请检查用于显示 div 滚动的 css/样式是否符合您的预期(在 div 内形成滚动条),如果是这种情况,则在两者(div 和滚动条)上使用父 div 并使用 focusOut/blur 事件在包含两者的父 div 上。

于 2013-01-25T13:20:33.280 回答