我是HTML和JS的新手。 需要创建动态展开 - 折叠列表。 var parentId = document.getElementById(“ABCD”) parentId.setAttribute(“数据肘节”,“崩溃”) parentId.setAttribute( “数据对象”, “#collapse1”) var tag = document.createElement(“ul”); tag.setAttribute( “ID”, “collapse1”) tag.appendChild(document.createTextNode( “PQR”)) parentId.appendChild(标签)
尝试列表 - A B C D PQR
所以在这种情况下,当我点击ABCD时,PQR会被展开/折叠。 但问题是点击PQR,它再次崩溃。 那么parent的属性也会应用于子节点吗?
答案 0 :(得分:1)
并不是它获得了它的父级属性,这与事件的处理方式有关,特别是event bubbling。单击子元素时,如果针对您单击的内容的所有父元素触发了单击事件,则单击
在您点击新元素的点击处理程序中<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="parent">
<div class="child"></div>
<div class="child"></div>
<div class="child"></div>
<div class="child"></div>
<div class="child"></div>
<div class="child"></div>
<div class="child"></div>
<div class="child"></div>
</div>
所需的附加元素时,从冒泡中取消事件
追加后再执行以下操作
event.stopPropagation()
另外,我应该提到使用jQuery
,所有这些都会轻松10倍