頂部我有下面的代碼這是應該當您單擊除了射擊和警告的鏈接,阻止發生任何事情。鏈接目的地被取消,但點擊鏈接會將您滾動到頁面頂部。我怎樣才能阻止這種行爲?由於的preventDefault仍然滾動到頁面
$('a#target').click(function(event){
event.preventDefault();
alert('End of demo');
});
更新我的鏈接如下所示:
<a href="#">Submit</a>
頂部我有下面的代碼這是應該當您單擊除了射擊和警告的鏈接,阻止發生任何事情。鏈接目的地被取消,但點擊鏈接會將您滾動到頁面頂部。我怎樣才能阻止這種行爲?由於的preventDefault仍然滾動到頁面
$('a#target').click(function(event){
event.preventDefault();
alert('End of demo');
});
更新我的鏈接如下所示:
<a href="#">Submit</a>
不,的preventDefault不應該阻止任何東西,它應該做的正是它說 - 防止默認動作。即如果你點擊一個帶有href的鏈接,它將阻止瀏覽器訪問該鏈接的默認動作。
如果你想停止連接到該鏈接的所有其他事件,必須在事件處理程序的最後返回false,並確保該事件處理是任何其他之前執行。
UPDATE:
感謝張貼的鏈接和href值。我敢打賭,發生的事情是JavaScript在點擊處理程序被觸發之前遇到錯誤。正如對這個答案的第一條評論正確地表明 - preventDefault應該防止鏈接跳轉到頁面內的錨點。如果不是,做它的工作,那可能是因爲頁面上的其他地方存在JavaScript錯誤。
所有這一切是說,你確定你發佈了正確的HTML?
$('a#target').click(...
附加一個單擊處理程序,看起來像這樣的鏈接:
<a href="#" id="target">Submit</a>
而且最終的一個想法 - 如果定位元素只有通過JavaScript連接到它的動作(一個或多個),那麼爲什麼指定選項href屬性呢?
能否請您包括您與此使用HTML ...因爲它工作完全正常我(http://jsfiddle.net/GJnxT/)! – ManseUK
它實際上[對我來說工作得很好嗎?](http://jsfiddle.net/GJnxT/1/) – adeneo