1

我有以下 HTML 代码

    <div id="id0_0" class="clearfix" style="margin-left:40px">
       <div id="id0_1" class="choice">
          <span id="spanradio_1" class="radio"> </span>
          <span id="spanlabel_1" class="label"><label id="label_1">Indoor</label></span>
       </div>

       <div id="id0_2" class="choice">
          <span id="spanradio_2" class="radio"> </span>
          <span id="spanlabel_2" class="label"><label id="label_2">Outdoor</label></span>
       </div>
    </div>

使用以下 jQuery:

    jQuery('.choice').click( function(e) {
       alert('clicked!! ' + e.target.id);
       var src_ele = $(e.target);

       e.stopPropagation();
       return false;
    });

但是,我的点击是触发 spanradio 的 & 标签而不是 div 的。有什么原因造成这种情况吗?

谢谢!

4

3 回答 3

1

e.target是用户实际点击的元素。

如果用户点击了一个嵌套元素,e.target就会是那个元素。

于 2012-08-27T20:58:35.783 回答
1

基本上:

  • this是您将事件绑定到的元素(即您调用的集合中的元素之一.on
  • e.target是你点击的最深的元素

所以你想要this.id.

于 2012-08-27T21:45:31.480 回答
0

因为标签是“.choice”元素中的唯一内容,因此位于顶部 --> 它实际上是元素,您点击了...

看看event.relatedTarget这是否适合您。

于 2012-08-27T20:59:28.980 回答