2011-02-23 62 views
3

我試圖阻止對錨點(「a」)標記的默認操作。在我的方案的HTML的幾行上飛用ajax(表單提交後)渲染,我想添加一個事件偵聽器如何防止使用JavaScript的錨標記的默認操作?

  1. 執行新創建的鏈接被點擊時的動作

  2. 阻止瀏覽器打開該鏈接。

這裏就是我在寫:

a = document.getElementById("new_link"); 
a.addEventListener("click",function(){alert("preform action"); 
             return false;},false); 

我也曾嘗試:

a.addEventListener("click",function(e){e.preventDefault(); alert("preform action");}); 

當我點擊鏈接「一」則顯示警告信息,但仍然打開我希望它顯示消息然後停止的「href」鏈接。

這兩種方法都會在連接到預先存在的鏈接時顯示警報,但在連接到新插入的鏈接時(通過ajax)不會工作..這是我需要做的。

任何幫助/建議。

謝謝。

+1

嘗試新添加鏈接的「href此,設置HREF屬性= 'javascript:void(0); return false;'「,它應該工作。 – 2011-02-23 05:19:52

回答

3

你可以使用的想法jquery-nolink插件的後面,做這樣的事情:

$('new_link').attr("href", "javascript:void(0);"); 
5

使用jQuery庫,你可以停止其綁定到JQ對象的事件(在這種情況下,所有的元素)通過調用作爲回調參數傳遞的事件上的.preventDefault()方法。

試試這個:

$('a').click(function(e) { 
    e.preventDefault(); 
    alert("perform action"); 
}); 
2

回想起一個老話題,但我想提供不依賴jQuery的一個選項。

a = document.getElementById("new_link"); 
a.addEventListener("click",function(){ 
    alert("preform action"); 
    window.event.preventDefault(); 
},false); 
2

簡單,你可以通過添加這樣做 「的javascript:無效(0);」爲您的 'href' 屬性值

例如: -

<a href="javascript:void(0)" > some link </a> 

,也可以實現這一目標使用jQuery

$('link-identifier').attr("href", "javascript:void(0);"); 
1

簡單的方法

也有一個簡單的方法來做到這一點

即通過返回布爾值。

example :

<a href='#link' onClick='return false;' > Prevent Link </a>; 

使用jQuery使它更有趣

$('a').click(function(){ 

    //or if you want to perform some conditions  
    if(condition){ 
    // your script 
    } 

    return false; 
}); 

希望它可以幫助☻