我有一個簡單的菜單子菜單。當在同一頁面上點擊子菜單中的鏈接時,窗口將使用jQuery滾動到相應的錨點。在這種情況下使用onclick事件處理程序是可以接受的嗎?
這裏是一個子菜單列表項的例子:
<li><a href="page.html#some-anchor" onclick="clickScroll('#some-anchor');"><span>foo</span></a></li>
相對應的錨栓是這樣的:
<a class="hidden-anchor" id="some-anchor" name="some-anchor"></a>
JavaScript函數:
function clickScroll(dest) {
$('html, body').stop().animate({
scrollTop: $(dest).offset().top
}, 1000);
}
這一切都完美地工作很好,但是和我之前的很多人一樣,我一直在閱讀內聯事件處理程序是不好的練習這些日子。
如何修改,以消除任何的onclick調用需要的功能?請記住,每個子菜單鏈接對應於不同的錨點。
這個方法我試過,以及Mythril的,但它好像在href被解析點擊功能,可以調用之前,因爲頁面只是去錨像正常的,而不是滾動。這可能嗎?如果是這樣,我應該刪除hrefs(或者只是將它們更改爲'#'),並使用相應的ID(即#some-anchor-link)? – Bobe
我不明白。你有沒有像預期的那樣工作? – David
你的例子一樣工作(爲您提供壁球結果窗口),但我不能讓它在我的代碼工作。就像你建議的那樣,我將類.submenu-link添加到子菜單中的所有錨點,並將選擇器更改爲$('a.submenu-link')。 – Bobe