2011-01-21 29 views
2

有沒有辦法用jQuery禁用HTML元素,它不是表單元素?禁用HTML元素,但不是表單元素

例如:

<ul class="selectors"> 
    <li class="clear-selected">Clear Selected<span>&nbsp;</span></li> 
    <li class="select-all">Select All<span>&nbsp;</span></li> 
</ul> 

我可以 '禁用' 的LI 「明確的選擇」?

我想要做的是讓LI不能被點擊。

我已經試過這樣的事情,但它不工作:

$('#x').attr('disabled', true); 

http://docs.jquery.com/FAQ#How_do_I_disable.2Fenable_a_form_element.3F

感謝,

EDIT--

這個問題的一部分一個更大的案例,這裏是Main Question

感謝大家回答。

+0

你是什麼意思「無法點擊」?你的意思是「讓事件處理程序不被觸發」? – lonesomeday 2011-01-21 18:24:19

+0

li不是表單元素。這是一個無序列表,所以你鏈接的例子沒有意義。你究竟想要做什麼?您的代碼中沒有鏈接,因此您必須在其他位置使用點擊功能? – plebksig 2011-01-21 18:28:55

+0

感謝您的回答。看到我上面的編輯。 – 2011-01-21 19:12:03

回答

0

因爲這個問題是一個比較複雜的情況下的一部分,這裏的鏈接到該解決方案:Buttons activate/deactivate elements in list (complex case)

這裏的的jsfiddle DEMO,請注意「清除所選」按鈕怎麼沒有點擊動作。它用不透明的方式來表達「不活躍」的想法。

感謝。

0

你可以使用以下兩種:

$(".clear-selected").hide(); 
$(".clear-selected").remove(); 

編輯:我覺得我讀你的問題是錯誤的。

當他們點擊li時會發生什麼?如果我們不知道它是什麼,真的無法幫助你讓事件停止。

+0

感謝您的回答。看到我上面的編輯。 – 2011-01-21 19:13:18

0

當你說「讓LI不能被點擊」時,你是什麼意思?你在那個元素上有一個onclick處理程序嗎?如果是這樣,你可以簡單地刪除處理程序。

+0

感謝您的回答。看到我上面的編輯。 – 2011-01-21 19:15:42

1

如果你想要做的是禁用該元素的事件處理程序,你可以是這樣做的:

$(".clear-selected").click(function() { 
    return false; 
}); 
3

那麼,在默認情況下,如果你點擊了鋰元素上什麼也沒有發生。我想,你有一些附加到你的元素的點擊處理程序,它們執行所描述的操作。在這種情況下,您可以只用unbind這些處理程序來「禁用」這些元素。