2012-01-09 125 views
3

我有一個錨點標記,它具有與之鏈接的jQuery單擊事件。通過單擊事件禁用錨點

此單擊事件所做的第一件事是通過將disabled屬性設置爲true來將錨點設置爲禁用狀態。這引發了正確的外觀,因爲它從我的樣式表中選取了myAnchor[disabled]樣式。

但是,它不會停止點擊事件被激發多次,而錨點已禁用設置爲true。我想這是因爲禁用屬性只適用於輸入一個不在錨點上(因爲我試過這個後發現)。

這段代碼對於應用程序內部的許多錨點是通用的,所以向Click事件本身添加一些代碼是不可取的,因爲我必須將其複製到所有Click方法。即使我用所需的代碼創建函數,也意味着我(或者更糟糕的是,其他開發人員可能不知道)必須先記住所有Click方法。

請記住,錨點可能會在某個時候再次啓用,所以我不能只是刪除點擊事件,從那時起,我需要跟蹤其他地方的功能,除了點擊方法。

所以問題是,禁用錨點的正確方法是什麼?

回答

5

您可以執行以下任何操作。

$('a').click(function() { return false; }); 

$('a').off('click'); 

$("a").unbind("click"); 
+2

如果元素之前有一個事件使用'on()'或'bind()'分別連接,則第二個元素只能工作。 – Purag 2012-01-09 08:59:54

+1

您也可以使用['.one()'](http://api.jquery.com/one/)API。但我不確定你的答案是否解決了OP的問題 – JMax 2012-01-09 09:05:12