BLUF:更新location.hash
與FF一個滾動到的使用jQuery航點元素的ID引起滾動鼓泡/口吃,但不是Chrome或IE。火狐 - 更新window.location.hash上滾動與jQuery航點
問題: 我使用jQuery Waypoints通過一個表,這個基本的佈局做了幾件事情在用戶滾動:
____________________________________________________
| <tr class="category" id="cat1">Category One</tr> |
| Cell | Cell | Cell |
| Cell | Cell | Cell |
| Cell | Cell | Cell |
____________________________________________________
| <tr class="category" id="cat2">Category Two</tr> |
| Cell | Cell | Cell |
| Cell | Cell | Cell |
| Cell | Cell | Cell |
一個我想要做的事情是追加ID在視口的頂部window.location
的.category
行。這個jQuery工作在Chrome 34和IE,但在FF 28它會導致在瀏覽器試圖跳回把元素在即使用戶不斷向下滾動視口頂部的「冒泡」的行爲。我在這裏註釋掉preventDefault
因爲它雖然修復了FF跳,這也從到達第一個.category
元素之後更新哈希停止腳本。有沒有人遇到與更新在FF location.hash
或對如何解決它的想法類似的問題?
$('.category').waypoint(function() {
//strip current hash from window.location
window.location.hash.replace('#','');
//store waypoint element's id
var setHref = $(this).attr('id');
//set id as location.hash
window.location.hash = setHref;
//e.preventDefault();
return false;
}, { context: 'section' });