2011-01-21 68 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这些处理程序来“禁用”这些元素。