2013-04-23 57 views
3

所以我有一些jQuery滑下菜單,當我將鼠標懸停在向下滑動的DIV上時,我不得不添加用於懸停的類,我需要懸停效果才能保持活動狀態。jQuery addClass保持類有

問題是,即使當DIV消失時它仍然停留在那裏 - 我嘗試使用removeClass,但是一旦我滾動到菜單選項DIV時它就會將其刪除。

我的jsfiddle在http://jsfiddle.net/pCTXq/3/

了jQuery低於

$(document).ready(function() { 
    $(".menu_item, .menu_options").hover(function() { 
    $(this).addClass('hover'); 
     $(".menu_options").stop(true, true).slideDown(400); 
    }, function() { 
     $(".menu_options").stop(true, true).delay(10).slideUp(400); 
    }); 

}); 

我看了一下後jquery hover().addClass() problem但是這似乎並沒有多大幫助

預先感謝您的幫助。

編輯。只是還注意到,在的jsfiddle這似乎是增加懸停類menu_options也 - 這是不是這樣的,當我在瀏覽器

+0

我只是鞭打了這一點,但也許這就是你想要實現的:http://jsfiddle.net/pCTXq/6/ – user1477388 2013-04-23 15:08:14

回答

1

利用第二個參數來slideUp。完成後,請刪除課程。事情是這樣的:

$(document).ready(function() { 
    $(".menu_item, .menu_options").hover(function() { 
     $(this).addClass('hover'); 
     $(".menu_options").stop(true, true).slideDown(400); 
    }, function() { 
     $(".menu_options").stop(true, true).delay(10).slideUp(400, function({ 
      $(".menu_item, .menu_options").removeClass('hover') 
     }); 
    }); 
} 

http://jsfiddle.net/pCTXq/9/

保存在您的提琴所以,基本上,增加懸停類懸停(或實際上是更合適的mouseenter是),而直到你完成滾動千萬不要刪除向上。您可能需要調整這些內容(從外觀上看,只需$(".menu_item")即可),但這是一般想法。

+1

非常感謝你:-) – AppleTattooGuy 2013-04-23 15:18:54

2

編輯實際測試腳本:

See this fiddle for updated answer


您需要刪除班級懸停,如果我理解正確你的問題:

$(document).ready(function() { 
    $(".menu_item, .menu_options").hover(function() { 
    $(this).addClass('hover'); 
     $(".menu_options").stop(true, true).slideDown(400); 
    }, function() { 
     $(this).removeClass('hover'); 
     $(".menu_options").stop(true, true).delay(10).slideUp(400); 
    }); 

}); 
+0

謝謝你的答案 - 我試過了,但是這樣做是需要關閉課程只要我進入menu_options div(向下滑動),我需要它留在那裏,而我結束了該div,並在脫落時移除 – AppleTattooGuy 2013-04-23 15:09:31

+0

@JamesLeist老實說,你沒有道理。你想要什麼樣的課程,你想什麼時候把課堂去掉? – 2013-04-23 15:11:37

+0

因此,menu_item div需要顯示懸停,然後當我滾動到menu_options時,懸停效果需要保持在menu_item上,然後當我滾動menu_options時,懸停需要消失 - 目前它停留在那裏 – AppleTattooGuy 2013-04-23 15:13:15