点击事件触发儿童?

时间:2012-08-27 20:56:46

标签: javascript jquery html

我有以下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的&amp;标签而不是div。是什么原因引起了这个?

谢谢!

3 个答案:

答案 0 :(得分:1)

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

如果用户点击嵌套元素,则e.target将成为该元素。

答案 1 :(得分:1)

基本上:

  • this是您绑定事件的元素(即您在其中调用.on的集合中的一个元素)
  • e.target是您点击的最深层元素

所以你想要this.id

答案 2 :(得分:0)

因为标签是“.choice”元素中的唯一内容,因此位于TOP - &gt;它实际上就是元素,你点击了......

如果这是适合您的,请查看event.relatedTarget