我有一個鏈接jQuery和#鏈接
<a href="#">has a jQuery click handler</a>
我的jQuery的工作它應該的方式......但散列#標籤是使我的瀏覽器跳轉到頁面上每次點擊的頂部。
有什麼辦法可以解決這個問題嗎?我嘗試刪除#但它改變了我的CSS樣式。
我有一個鏈接jQuery和#鏈接
<a href="#">has a jQuery click handler</a>
我的jQuery的工作它應該的方式......但散列#標籤是使我的瀏覽器跳轉到頁面上每次點擊的頂部。
有什麼辦法可以解決這個問題嗎?我嘗試刪除#但它改變了我的CSS樣式。
如果您想快速且骯髒地解決問題,您應該在您的點擊處理程序的末尾添加一個return false;
。
但是,返回false將強制您退出並實際停止事件傳播。由於您使用的是jquery javascript庫,因此您也可以選擇使用preventDefault()
方法,該方法將刪除默認操作並允許該函數繼續運行。
您的點擊處理程序應爲return false;
或致電preventDefault()事件對象。
實施例:
$('your selector').click(function(e) /* note the parameter e */
{
e.preventDefault();
//your code
});
return false
或撥打eventHandler.preventDefault()
上onclick
事件:
$('#yourLink').click(function() {
return false;
});
或
$('#yourLink').click(function(e) {
e.preventDefault();
});
或改變href
到:
<a href="javascript:void(0);">has a jQuery click handler</a>
您還可以使用javascript: void false;
而不是#
。所以:
<a href="javascript: void false;">has a jQuery click handler</a>
要重申上面的評論,這是正確的,添加一個返回false到點擊處理程序。這看起來像:
$('.link').click(function(){
... things to run on click ...
return false;
});
只是一個fyi,這不是一個jQuery問題。 – Marc