不是单击li,而是单击它的子节点
Instead of li, it's child is clicked
我这里有一个列表:
<ul id="orderlist">
<li id="2">
<span class="pull-right value">Ready</span>
<img src="" class="img-responsive"> Filet Mignon
<small>2 servings</small>
<small>Note: No lettuce </small>
</li>
<li id="3">
<span class="pull-right value">In Progress</span>
<img src="" class="img-responsive"> Tarte Tatin
<small>2 servings</small>
</li>
</ul>
我有一个JavaScript用于点击每个li
:
$("body").on("click", "#orderedlist li", function(e) {
$contextMenu.css({
display: "block",
left: e.pageX,
top: e.pageY
});
oiID = $(e.target).attr('id');
return false;
});
它可以工作,但是如果我单击<img>
或li
内的其他元素,它为oiID
返回undefined
,因为它获得子元素而不是li
。我怎么能解决这个问题,即使我在父元素内点击,li
应该是一个识别。
用$(this)
代替$(e.target)
。
oiID = $(this).attr('id');
你正在使用JQuery,所以使用$(this):
oiID = $(this).attr('id');
// OR
oiID = $(e.target).attr('id');
if(oiID == '')
oiID = $(e.target).parent().attr('id');
相关文章:
- 单击子分区外部时关闭灯箱
- 单击子元素内部时如何删除该元素
- 表单元素上的jQuery focusout事件即使在单击子元素时也会被触发
- 检测单击子节点并发送槽事件处理程序
- 如何在单击子链接时停止垂直菜单的手风琴
- 单击子菜单顶部时关闭
- 动态地将单击的节点作为加载节点的父节点 - jsTree
- 单击“子组件”将关闭打开的列表
- ExtJs 并单击子元素上的事件
- 防止在单击子元素时触发其父元素的单击事件
- JQuery UI 嵌套手风琴 - 单击子手风琴将关闭父手风琴
- 当用户单击子菜单并在新页面中打开时,子菜单将保持活动状态
- 父级上的事件,单击子级(事件冒泡)
- 单击子元素时不要触发父事件
- 单击jstree节点,以该节点为根重建树
- 切换类在单击子元素时不起作用
- 处理通过聚焦在子元素上并通过单击子元素外部触发的父元素的模糊事件
- 防止在单击子节点时调用父函数
- 在单击子节点时触发子节点和父节点的onClick
- Jstree:在单击父节点时,只有所有子元素应该被选中,父节点不应该被选中