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