我有这段代码
<div ng-repeat="names in mitypes = (mitype | filter:{parentid:0}:true)">
<li ng-click="newObject[names.id]=!newObject[names.id]">
<label ng-click="selectedlist[names.id]=!selectedlist[names.id]">{{names.id}} </label>
</li>
</div>
</div>
它的ul li元素树。所以我希望有2个点击事件: 1.单击单击以打开/关闭树分支 2.单击标签ng-click以选择树节点
li元素有css样式:
li {
list-style-type: none;
background-repeat: no-repeat;
background-position: left center;
}
li.closed
{
background-image: url(1.png);
}
li.opend
{
background-image: url(2.png);
}
我想点击png图像进行打开/关闭,并为select节点标记。 现在,当你点击“li”的任何部分时,两个变量都会改变它们的含义。
如何分割这些事件? 提前谢谢......
答案 0 :(得分:2)
这是浏览器中的标准事件传播行为。
在$event.stopPropagation
上尝试<label>
:
<label ng-click="selectedlist[names.id]=!selectedlist[names.id]; $event.stopPropagation()">{{names.id}} </label>
如果您想在点击数字左侧时想要打开,请向<li>
添加padding-left:
li {
list-style-type: none;
background-repeat: no-repeat;
background-position: left center;
border: 1px solid white;
border-radius:5px;
background-color:lightblue;
padding-left: 30px; //add padding
}