span onclick不起作用jquery

bla*_*hop 2 html javascript jquery

我有一个用css和jquery创建的树视图结构.要展开一个节点我想用户点击一个<span>在中<li>(这是一个图像),而不是节点本身.

所以这是我的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>
Run Code Online (Sandbox Code Playgroud)

这是跨度上的clikc事件的JS部分(但它不起作用):

$( '.tree li.parent > span.expand' ).click( function( ) {
    $( this ).parent().toggleClass( 'active' );
    $( this ).parent().children( 'ul' ).slideToggle( 'fast' );
});
Run Code Online (Sandbox Code Playgroud)

但是,下面的代码工作,但通过点击<a>之内<li>:

 $( '.tree li.parent > a' ).click( function( ) {
    $( this ).parent().toggleClass( 'active' );
    $( this ).parent().children( 'ul' ).slideToggle( 'fast' );
 });
Run Code Online (Sandbox Code Playgroud)

我需要通过单击跨度来扩展节点,因为单击节点时我需要重定向到另一个页面以显示其详细信息.

请看这个为这个问题创建的jsfiddle.

那么为什么span上的click事件不起作用?

Ser*_*tov 6

问题在于CSS.标记a与您的范围重叠.用边距替换填充,一切都将开始工作.

更新:实际上 - 删除标签小提琴display:block的规则a:http://jsfiddle.net/8ucy1gjb/2/