为动态创建的列表项及其内容添加单击操作
Add on click action for dynamically created list item and its contents
我用JavaScript动态创建了一个树列表。它看起来像:
<ul>
<li><img />First</li>
<ul>
<li>Item one</li>
<li><img />Item two</li>
<ul>
<li>Something</li>
</ul>
</ul>
<li>Second</li>
</ul>
我在有孩子的<li>
中添加了图像。
以下是我的点击事件:
$('li').on({
click: function(e) {
if (this === e.target) {
$(this).children('i.glyphicon').toggleClass('glyphicon-minus glyphicon-plus')
$(this).siblings('ul').toggle('medium');
}
},
mouseover: function() {
if ($(this).siblings('ul').length > 0) {
$(this).children('i.glyphicon').addClass('bg-button');
}
},
mouseout: function() {
$(this).children('i.glyphicon').removeClass('bg-button');
}
});
i
是我从引导程序中使用的图像。我的单击操作适用于<li>
中的文本,但是如何为<li>
中的图像扩展此功能?
您可以将if
条件更改为$(e.target).closest('li').is(this)
$('li:has(ul)').on({
click: function(e) {
if ($(e.target).closest('li').is(this)) {
$(this).children('i.glyphicon').toggleClass('glyphicon-minus glyphicon-plus')
$(this).children('ul').toggle('medium');
}
},
mouseover: function() {
$(this).children('i.glyphicon').addClass('bg-button');
},
mouseout: function() {
$(this).children('i.glyphicon').removeClass('bg-button');
}
});
li ul {
display: none;
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.4/css/bootstrap.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li><i class="glyphicon glyphicon-plus"></i>
<img />First
<ul>
<li>Item one</li>
<li><i class="glyphicon glyphicon-plus"></i>
<img />Item two
<ul>
<li>Something</li>
</ul>
</li>
</ul>
</li>
<li><i class="glyphicon glyphicon-plus"></i>
<img />First
<ul>
<li>Item one</li>
<li><i class="glyphicon glyphicon-plus"></i>
<img />Item two
<ul>
<li>Something</li>
</ul>
</li>
</ul>
</li>
<li><i class="glyphicon glyphicon-plus"></i>
<img />First
<ul>
<li>Item one</li>
<li><i class="glyphicon glyphicon-plus"></i>
<img />Item two
<ul>
<li>Something</li>
</ul>
</li>
</ul>
</li>
</ul>
您的标记存在一些问题,因为ul
不能是另一个ul
的child
,您需要将其放在li
相关文章:
- Jquery在表WITH函数中追加新行后添加单击事件
- 添加/单击c#asp.netmvc5后禁用和更改按钮图标
- 递归添加单击事件处理程序
- 在动态创建的按钮上添加单击事件,这些按钮在单击时更改模式 h4 文本
- 为动态创建的列表项及其内容添加单击操作
- 向动态创建的表中的单元格添加单击函数 - JavaScript
- 向图像添加单击或按钮
- 如何使用单击方法在元素内部添加单击方法
- 如何添加单击事件以将您带到幻灯片上的某个图像
- 添加单击侦听器以循环列出项目
- 向动态生成的内容添加单击处理程序.如何去做
- JqPlot在数据点上添加单击事件
- 向所有元素添加单击事件侦听器- Firefox插件
- 如何在条形图中添加单击事件
- 创建动态按钮时出现错误,以及如何在不使用id的情况下动态添加单击事件
- 向加载的KML中的标记添加单击事件
- 为动态创建的下拉列表添加单击功能
- 无法在动态创建的锚标记上添加单击事件
- 如何向每个元素添加单击事件侦听器
- 如何使用Dojo向表行添加单击事件