1

我使用 jQuery 鼠标滚轮插件来帮助我确定用户是向上还是向下滚动。如果用户向上滚动,我希望父元素的最后一个子元素显示为无。这有效,但只有一次。父级中的其他元素无法转到display:none

我想到的一个选择是使用,.empty()但是当我使用它时,没有一个元素会消失。

我创建了一个工作示例,我将在下面发布我认为导致问题的代码。http://jsbin.com/orocat/1/edit

仅 Javascript 代码:

$(document).on('mousewheel', function(event, delta) {

if (delta > 0) {  
    clearTimeout($.data(this, 'timer'));
    $.data(this, 'timer', setTimeout(function() {

    //here is the code that is causing trouble. I realize that it is
    //only selecting the last child but if I used .empty() nothing happens?
    $('.body div:last-child').css('display','none');

}, 80));} 

    else {  clearTimeout($.data(this, 'timer'));
    $.data(this, 'timer', setTimeout(function() {

    //have div elements display themselves again. need to work on this
    }, 80));}

});
4

2 回答 2

2

您继续将最后一个设置DIVdisplay:none;

每当您使用此选择器$('.body div:last-child').css('display','none');时,您每次都选择相同的 DIV。似乎您每次都想选择下一个 DIV ?尝试使用div:visible

于 2012-09-24T21:59:30.723 回答
2

替换您的以下行:

$('.body div:last-child').css('display','none');

对于这个:

$('.body div:visible').eq(-1).css('display','none');

因为你一次又一次地选择同一个 div,因为让它隐藏它不像删除它,所以你的选择器一直选择它。

于 2012-09-24T22:00:45.257 回答