如何在jQuery中取消选择所有元素?

9

我想取消选择(移除所选元素)。在我的演示中,我使用了jstree插件。因此我查看了插件的api。 http://www.jstree.com/api/#/?f=deselect_all([supress_event])。 但它没有取消选择已选项目。 我按照以下步骤操作: 1)单击“b”节点,然后“b”节点被选中。 2)然后按“取消选择”按钮,但它没有取消选择项。

$('#deselect').click(function(){

    alert('--')
    $('#tree').deselect_all(true)

})

http://jsfiddle.net/fuu94/150/


我使用了EasyUI插件,如果你想尝试的话可以访问这个网址:http://www.jeasyui.com/tutorial/tree/tree4.php - vivek
3个回答

20

尝试这段代码:

$('#tree').jstree("deselect_all");

与其

$('#tree').deselect_all(true)

这里有更新的 JSFiddle


在这个jsfiddle中,我正在使用向上一级的功能。 - user1542984
当按钮在顶部时,我需要禁用它。 - user1542984
我按照以下步骤操作:1)展开“b”节点,选择“b-a”节点。然后点击“打开级别按钮”。它会跳转到“b”。但是当我再次点击时,它不会有任何反应。它应该变为禁用状态。 - user1542984

1
我刚刚学到,你也可以使用以下代码: $('#tree').jstree("deselect_all", true); 这将抑制“changed.jstree”事件,这正是我在页面上所需要的,并且似乎更符合您最初的逻辑。
我的工作代码摘录如下:
function DeselectTree() {
    $('[id ^= "forms-foldertree-"]').each(function () {
        $(this).jstree('deselect_all', true);
    });
}

1
我喜欢这个答案,它非常清晰简洁。看起来非常高效。 - sadmicrowave

0

我使用的是:

$('#deselect').click(function(){

$('#tree').attr("checked", false);

})

或者你可以添加自定义属性并为选择/取消选择添加样式表/类名

通过jquery更改这个

$('#deselect').click(function(){

if($('#tree').attr("customattr") == "select" )

   $('#tree').attr("customattr", "unselect");

else

$('#tree').attr("customattr", "select");

})


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接