2010-01-18 71 views
21

我創建了一個JavaScript函數,我添加到錨這樣JavaScript的錨避免滾動到頂部上點擊

的javascript:

somefunction = function() {alert('foo')} 

HTML:

<a href="#" onclick="return somefunction()">anchor</a> 

每次我點擊在錨的功能執行,但屏幕滾動到頂部

我知道我可以做到這一點

<a href="javascript:void(0)" onclick="return somefunction()">anchor</a> 

,但我已經看到了沒有向上滾動

這個鄉巴佬了實施的第一個選項是有什麼訣竅呢?

謝謝

回答

46

的onclick導致頁面重新提交,因此滾動到頂部。

您需要onclick事件才能返回false以避免回發。

這可以通過更改函數來完成返回一個錯誤:

somefunction = function() {alert('foo'); return false;} 

或更改鏈接,onClick事件可以這樣做:

<a href="javascript:void(0)" onclick="somefunction(); return false;">anchor</a> 
2

返回false從你的onclick處理程序,例如:

<a href="#" onclick="somefunction(); return false;">anchor</a> 
2

您需要使somefunction()返回false,或者您需要明確將return false添加到您的onclick處理程序中。例如:

<a href="#" onclick="somefunction(); return false;">anchor</a> 

這將讓瀏覽器忽略鏈接的href部分當有人點擊就可以了。

4

訣竅是,你的onclick返回somefunction的價值,所以,如果你確保somefunction總是return false,那麼該事件將返回false爲好,並取消了錨的默認行爲。

所以這應該解決您的問題:

somefunction = function() { alert('foo'); return false; } 

但我要指出的是,當有錯誤的地方在somefunction,javascript的其餘部分將不執行,瀏覽器仍將遵循鏈接#。因此,建議使用javascript:void(0),因爲這樣可以消除這個問題。