2012-09-24 87 views
1

我使用了jQuery插件,鼠標滾輪可以幫助我確定用戶是否上下滾動時。如果用戶向上滾動,我希望父元素的最後一個孩子顯示爲無。這工作,但只有一次。父級中的其他元素無法轉到display:none。我想到的jQuery的滾動結束,最後一個子元素選擇

一種選擇是使用.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));} 

}); 

回答

2

替換您如下一行:

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

這一個:

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

,因爲你是格設置一次又一次地選擇相同的,因爲使其隱藏它不喜歡刪除它,所以你選擇器不斷選擇它。

+0

感謝。從來不知道'.eq()'。 – jason328

+0

不客氣! :-) – Nelson

2

你保持設定的最後DIVdisplay:none;

當你使用這個選擇$('.body div:last-child').css('display','none');你每次都選擇相同的DIV。好像你想每次選擇下一個DIV?嘗試使用div:visible

相關問題