几次遇到对于新增节点无法用原JS操作的问题,今天的解决办法是给新增节点添加一个onclick事件。原html文件如下:
1 <ul class="firmenu"> 2 <li><span onclick="addnew(this)" id="add" class="add"><img src="../images/open_05.png" class="img-span"></span><span class="align-span"><span class="show-child"></span>添加条目</span> 3 <ul class="secmenu"> 4 <li><span onclick="addli1(this)" class="add" ><img src="../images/open_07.png" class="addimg"></span><span class="style-span"><span class="show-child"></span>中国建设银行</span> 5 <ul> 6 <li><span class="glyphicon glyphicon-tree-deciduous tree-child"></span> <span onclick="del(this)" class="delete" ><img src="../images/open_11.png" class="delimg"></span><span class="style-span">建设银行</span></li> 7 </ul> 8 </li> 9 <li><span onclick="addli1(this)" class="add" ><img src="../images/open_07.png" class="addimg"></span><span class="style-span"><span class="show-child"></span>中国工商银行</span> 10 <ul> 11 <li><span class="glyphicon glyphicon-tree-deciduous tree-child"></span> <span onclick="del(this)" class="delete" ><img src="../images/open_11.png" class="delimg"></span><span class="style-span">工商银行</span></li> 12 </ul> 13 </li> 14 <li><span onclick="addli1(this)" class="add" ><img src="../images/open_07.png" class="addimg"></span><span class="style-span"><span class="show-child"></span>中国招商银行</span> 15 <ul> 16 <li><span class="glyphicon glyphicon-tree-deciduous tree-child"></span> <span onclick="del(this)" class="delete" ><img src="../images/open_11.png" class="delimg"></span><span class="style-span">招商银行</span></li> 17 </ul> 18 </li> 19 </ul> 20 </li> 21 </ul>
操作上面html节点的JS如下:
// 下拉菜单 var clickT = $(‘.show-child‘).parent();//为了点击文字也能实现功能 $(clickT).click(function(){ $(this).find(‘.show-child‘).toggleClass(‘hide-child‘); $(this).parent().children(‘ul‘).toggle(); var ul = $(‘.show-ul‘); $(‘.show-ul‘).toggle(); alert(ul) });
页面展示如下:
点击编辑后进行增加节点后的页面:
新增节点的JS代码如下:
// +添加 $(‘#confirm‘).click(function(){ var temp = $(target).parent(); var ul = $(temp).children("ul"); var text = $(‘#input‘).val(); $(‘#input‘).val(‘‘); var index = ul.length;
//添加条目 增加的节点 var oliFirst = $(‘<li class="li">‘+‘<span onclick="addli1(this)" class="add"><img src="../images/open_07.png" class="addimg"></span>‘+‘<span onclick="del(this)" class="delete"><img src="../images/open_11.png" class="delimg"></span>‘+‘<span class="style-span" onclick="showul(this)">‘+‘<span class="show-child" ></span>‘+text+‘</span>‘+‘<ul class="show-ul">‘+‘</ul>‘+‘</li>‘);
//添加子节点 var oli = $(‘<li class="li">‘+‘<span class="glyphicon glyphicon-tree-deciduous tree-child"></span> ‘+‘<span onclick="del(this)" class="delete"><img src="../images/open_11.png" class="delimg"></span>‘+‘<span class="style-span">‘+text+‘</span>‘+‘<ul>‘+‘</ul>‘+‘</li>‘);
//用来判断点击的是哪个添加 if (idtarget!=‘addfirst‘) { ul.append(oli); }else{ ul.append(oliFirst); } $(‘.show-child‘).hide(); $(‘.tree-child‘).hide(); $(‘.window‘).hide(); });
//对添加的节点执行下拉菜单的操作 function showul(obj){ $(obj).next(‘ul‘).toggle(); $(obj).children(‘.show-child‘).toggleClass(‘hide-child‘); }
原文:http://www.cnblogs.com/jxb520wan/p/4862345.html