2014-01-19 54 views
1

http://jsfiddle.net/EYQ3S/。一和回調

$('#footer').one('hover', function() { 
    $('#impressum_lang_container').stop().slideDown('slow', function(){ 
      $('body,html').animate({ scrollTop: $(document).height()}, 'slow'); 
      return false; 
    }); 
}); 

我完全新的JavaScript,所以非常感謝您的幫助!這是高度讚賞:-)

我很努力統一兩個函數在一個回調下.one。 我讓他們獨立工作,但現在我不知道如何繼續。

我有一個頁腳。有一種懸停效果,當鼠標移過頁腳時,新的div會在下面展示出更多的內容。 現在,我希望一邊div完全鋪開後,一邊自動滾動到底部。這就是爲什麼我試圖放入回調函數。

此外,在我的第一個解決方案中,每次用戶懸停頁腳時都會執行向下滾動操作。我不想這樣,所以我嘗試使用.one函數。還沒有工作。

回答

2

沒有任何活動稱爲hover - 這是用來註冊的mouseenter和鼠標離開處理效用函數,你需要使用mouseenter - 當鼠標進入元素和mouseleave當鼠標離開元素

$('#footer').one('mouseenter', function() { 
    $('#impressum_lang_container').stop().slideDown('slow', function() { 
     $('body,html').animate({ 
      scrollTop: $(document).height() 
     }, 'slow'); 
     return false; 
    }); 
}); 

演示:Fiddle

+0

謝謝,的確這並獲得成功:) – Whelee

0

阿倫的回答作品,但在我看來,mouseover事件應被用來代替mouseenter,因爲mouseover當用戶將光標移動內部#footer的事件將再次觸發,而如果用戶使用中間按鈕向下滾動頁面而不移動光標,則會觸發mouseenter,否則在鼠標移動時不會觸發事件,直到您離開元素並再次將鼠標懸停在其上以觸發mouseenter。這將由您來決定什麼時候發生,但我會建議測試兩者。

所以,我想簡單地改變

$('#footer').one('hover', function() { 

$('#footer').one('mouseover', function() { 
+1

有效參數,據我可以看到它。使用鼠標懸停,非常感謝! – Whelee