2013-02-10 59 views
1

嗨可以有人請幫助,即時通訊試圖找到一種方法,每次用戶會話被點擊一次後,禁用鏈接,我可以這樣做在jQuery中?使用jquery點擊一次後禁用鏈接?

我是javasript和jquery的全新新人,所以有人請告訴我什麼id需要做的感謝。

+0

事件處理程序和餅乾。這應該引導你走向前進的道路。 – Joseph 2013-02-10 02:49:19

+0

可能重複[「禁用」一個鏈接暫時點擊?](http://stackoverflow.com/questions/5380722/disable-a-link-temporarily-when-clicked) – 2013-02-10 02:49:24

+0

我不想暫時禁用鏈接。我想保持它禁用。 – 2013-02-10 02:51:19

回答

3

綁定event.preventDefault()以防止鏈接後的默認瀏覽器事件。只在隨後的點擊上進行操作(這樣在第一次點擊時它就會允許它 - 這就是你想要的)。

$(".oncelink").one('click',function(e){ 
    $(this).on('click',function(ev){ 
     ev.preventDefault(); 
    }); 
}); 
1

你必須把在服務器端的一些檢查,以及爲這種邏輯的工作。但在客戶端使用jQuery,你可以做類似

$('a').on('click', function() 
{ 
    var me = $(this); 
    //You can also set some attribute value if you do not want to use class 
    if(me.hasClass('disabled')) 
    { 
     return false; 
    } 
    else 
    { 
     me.addClass('disabled'); 
    } 
}); 
0

在HTTP連接之間持久狀態的一種方法是使用cookie。你應該真的使用服務器端語言來設置/獲取cookie,因爲客戶端cookie設置/獲取可能會變得混亂,更不用說不安全且易於利用。另外,如果用戶在瀏覽器中關閉了JS,這甚至不起作用,使得你的努力毫無價值。然而,這將是這個樣子:

// on dom ready 

var onceButton = document.getElementById('once'); 
function disableButton() { 
    onceButton.disabled = 'disabled'; 
    document.cookie="disable_button=1"; 

    // prevent listening on future clicks 
    onceButton.removeEventListener('click', disableButton, false); 
} 

if (document.cookie.indexOf('disable_button=1;') === -1) { 
    // if no cookie set, wait until click happens to disable button 
    onceButton.addEventListener('click', disableButton, false); 
} else { 
    // cookie set, disable immediately 
    disableButton(); 
}