event.target jquery on()mousedown / up没有给出选择器指定的dom

问题描述 投票:3回答:2

我有这个简单的html:

<div class="wrapper">
    <span class="higher">
        [higher]
        <span class="lower">
            hello
        </span>
    </span>
</div>​

和这个js:

$('.wrapper').on('mousedown', '.higher', function(e){
    alert($(e.target).attr('class'))
    })​

[基本上,当我单击“ hello”一词时,我得到的是“较低”而不是“较高”。如何使事件的目标与on()的选择器参数中指定的目标相同?

这里有一些小提琴http://jsfiddle.net/TUvB7/2/

jquery jquery-events event-bubbling
2个回答
8
投票

使用this指示,e是开始起泡的元素

$('.wrapper').on('mousedown', '.higher', function(e){
    alert($(this).attr('class')) // Changed line
})​

http://jsfiddle.net/TUvB7/7/


1
投票

为什么需要e.target

$('.wrapper').on('mousedown', '.higher', function(e){
    alert($(this).attr('class'))
})​
© www.soinside.com 2019 - 2024. All rights reserved.