2011-12-01 35 views
1

我有一個鏈接jQuery和#鏈接

<a href="#">has a jQuery click handler</a> 

我的jQuery的工作它應該的方式......但散列#標籤是使我的瀏覽器跳轉到頁面上每次點擊的頂部。

有什麼辦法可以解決這個問題嗎?我嘗試刪除#但它改變了我的CSS樣式。

+2

只是一個fyi,這不是一個jQuery問題。 – Marc

回答

6

如果您想快速且骯髒地解決問題,您應該在您的點擊處理程序的末尾添加一個return false;

但是,返回false將強制您退出並實際停止事件傳播。由於您使用的是jquery javascript庫,因此您也可以選擇使用preventDefault()方法,該方法將刪除默認操作並允許該函數繼續運行。

5

您的點擊處理程序應爲return false;或致電preventDefault()事件對象。

實施例:

$('your selector').click(function(e) /* note the parameter e */ 
{ 
    e.preventDefault(); 
    //your code 
}); 
0

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> 
1

您還可以使用javascript: void false;而不是#。所以:

<a href="javascript: void false;">has a jQuery click handler</a> 
1

要重申上面的評論,這是正確的,添加一個返回false到點擊處理程序。這看起來像:

$('.link').click(function(){ 
    ... things to run on click ... 
    return false; 
});