而不是li,它的孩子被点击了

时间:2014-03-16 06:10:42

标签: javascript css

我在这里有一个清单:

<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>

我有一个用于点击每个li的JavaScript:

$("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内的其他元素,它会为undefined返回oiID,因为它会获取子元素而不是li 1}}。我如何解决这个问题,即使我点击父级内的元素,li应该是已识别的元素。

2 个答案:

答案 0 :(得分:3)

而不是$(e.target)使用$(this)

oiID = $(this).attr('id'); 

答案 1 :(得分:2)

您正在使用JQuery,因此请使用$(this):

oiID = $(this).attr('id');

// OR

oiID = $(e.target).attr('id');
if(oiID == '')
  oiID = $(e.target).parent().attr('id');