不是单击li,而是单击它的子节点

Instead of li, it's child is clicked

本文关键字:单击 子节点 li      更新时间:2023-09-26

我这里有一个列表:

<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');