我愿意使用jquery treeview。我有一个类别和子类别可供选择项目,我想在树视图中显示它们。我希望得到点击的值。
目前我正致力于这样的事情:
<ul id="treeview">
<li>group1a
<ul>
<li>group11 </li>
</ul>
</li>
<li>group2 </li>
<li>group3 </li>
<li>group4 </li>
<li>group5 </li>
</ul>
我试过这个脚本,但点击功能给我一个错误。
<script type="text/javascript">
$().ready(function () {
$("#treeview").treeview();
});
$("#treeview").click(function (e) {
e.target.addClass("selected");
});
</script>
我是这个Jquery处理事物的方式的一个非常大的初学者,所以我假设我在某个地方错过了一些重点...感谢你的帮助......
答案 0 :(得分:2)
addClass
是一个jQuery方法,而e.target
不是jQuery对象。您需要将其括在$()
:
$("#treeview").click(function (e) {
$(e.target).addClass("selected");
});
您的代码无论如何都不会起作用,因为click事件仅绑定到#treeview
元素,当该元素触发时,e.target
将始终是#treeview
元素。您正在寻找的可能是这样的:
$("#treeview li").click(function() {
$(this).addClass("selected");
});
这会将click函数绑定到所有li
元素,当单击其中一个元素时,它会将“selected”类添加到该元素。
您可能还想允许取消选择对象,因此您应该使用toggleClass
而不是addClass
。如果您只想选择一个对象,可以使用:
$("#treeview li").click(function() {
// Clear all selected states
$('#treeview li').removeClass('selected');
// Set current as selected
$(this).addClass("selected");
});
希望这有帮助。
答案 1 :(得分:0)
尝试:
$(document).ready(function(){
$("#browser").treeview({
toggle:function(){
console.log($(this).find('ul li'));
}
});
Toggle是点击的回调。 'this'值表示包含de'ul'和树内容的'li'。在这种情况下,控制台将找到嵌套在'ul'
内的所有'li'