jQuery插件TreeView的问题';将“唯一”设置为“真”时切换

jQuery插件TreeView的问题';将“唯一”设置为“真”时切换,jquery,jquery-plugins,treeview,Jquery,Jquery Plugins,Treeview,我正在试验位于此处的TreeView插件: 它有一个选项是“独特的”——一次只展开一个项目 出于显示的目的,它工作得非常好,但是我尝试挂接到TreeView的“toggle”属性/事件,以找出哪一个确切地被扩展了 当“unique”设置为true时,传递给“toggle”的函数似乎会为每个主列表元素触发,从而阻止我捕获实际初始化的扩展。我明白为什么会这样做了——确保切换其他元素,以便只扩展一个元素 关于如何仅获取切换/展开的“唯一”列表项的id的任何想法 下面是示例代码 $(document)

我正在试验位于此处的TreeView插件:

它有一个选项是“独特的”——一次只展开一个项目

出于显示的目的,它工作得非常好,但是我尝试挂接到TreeView的“toggle”属性/事件,以找出哪一个确切地被扩展了

当“unique”设置为true时,传递给“toggle”的函数似乎会为每个主列表元素触发,从而阻止我捕获实际初始化的扩展。我明白为什么会这样做了——确保切换其他元素,以便只扩展一个元素

关于如何仅获取切换/展开的“唯一”列表项的id的任何想法

下面是示例代码

$(document).ready(function() {
$("#browser").treeview({
    collapsed: true,
    unique: true,
    toggle: function()
    {
            $('#console').append(this.id + ' was toggled');
    }
 });
});

<ul>
<li id="1">Ottawa
    <ul>
        <li>Item 1</li>
        <li>Item 9</li>
    </ul>
</li>
<li id="2">Montreal
    <ul>
        <li>Item 2</li>
        <li>Item 8</li>
    </ul>
</li>
<li id="3">Quebeque
    <ul>
        <li>Item 3</li>
    </ul>
</li>
<li id="4">Calgary
    <ul>
        <li>Item 7</li>
    </ul>
</li>
<li id="6">Toronto
    <ul>
        <li>Item 10</li>
    </ul>
</li>
</ul>
<div id="console"></div>
$(文档).ready(函数(){
$(“#浏览器”).treeview({
对,,
独一无二:没错,
切换:函数()
{
$('#console').append(this.id+'已切换');
}
});
});
    渥太华
    • 项目1
    • 项目9
    蒙特利尔
    • 项目2
    • 项目8
    魁北克岛
    • 项目3
    卡尔加里
    • 项目7
    多伦多
    • 项目10

该插件可以使用更多的事件,但通过检查是否有可见的子项,您可以轻松判断单击了哪个事件:

if($(this).find("ul:visible").length)
{
    $('#console').append(this.id + ' was toggled');
}
根据您的HTML结构,您可以将
find
更改为更快的
children
。这仍然会对所有节点运行
切换
事件,但会检查是否有正确的节点。

请参见此处的“在操作中”:该插件可以使用更多的事件,但您可以通过检查是否有任何可见的子项轻松判断单击了哪个事件:

if($(this).find("ul:visible").length)
{
    $('#console').append(this.id + ' was toggled');
}
根据您的HTML结构,您可以将
find
更改为更快的
children
。这仍然会对所有节点运行
切换
事件,但会检查是否有正确的节点。

请参见此处的《行动》:谢谢Kobi,这正是我在寻找的Hanks Kobi,这正是我在寻找的