我有一個用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