我有一个用css和jquery创建的treeview结构。要展开节点,我希望用户单击<li>
(它是一个图像)内的<span>
,而不是节点本身。span onclick无法正常工作jquery
因此,这里是我的HTML部分:
<div class="tree">
<ul>
<li class="parent active"><span class="expand"></span><a>Level 1</a>
<ul>
<li><span class="expand"></span><a>Level 2</a></li>
<li><span class="expand"></span><a>Level 2</a></li>
<li><span class="expand"></span><a>Level 2</a></li>
<li><span class="expand"></span><a>Level 2</a></li>
</ul>
</li>
<li class="parent active"><span class="expand"></span><a>Level 1</a>
<ul>
<li class="parent active"><span class="expand"></span><a>Level 2</a>
<ul>
<li class="parent active"><span class="expand"></span><a>Level 3</a>
<ul>
<li><a>Level 4</a></li>
</ul>
</ul>
</li>
<li><span class="expand"></span><a>Level 2</a></li>
</ul>
</li>
</ul>
</div>
这里的JS部分上跨度clikc事件(但它不工作):
$('.tree li.parent > span.expand').click(function() {
$(this).parent().toggleClass('active');
$(this).parent().children('ul').slideToggle('fast');
});
但是,下面的代码工作但通过点击<a>
的<li>
内:
$('.tree li.parent > a').click(function() {
$(this).parent().toggleClass('active');
$(this).parent().children('ul').slideToggle('fast');
});
I N通过点击跨度来扩展节点,因为当点击节点时,我需要重定向到另一个页面来显示它的细节。
请参阅为此问题创建的此jsfiddle。
那么为什么跨度上的点击事件不起作用?
只需清理您的开启和关闭标签。我认为你在那里做了一些混乱。 – Advicer