0

ページにこのhtmlがあります:

<div id="page-container">
    <a class="myLink" href="http://www.example.com/">
    <span></span>
    </a>
</div>

そしてこのjquery:

$('body').on('click','#page-container a', function(e){

   alert(e.target);

}

そしてこのCSS:

a span {
    display: block;
    height: 36px;
    width: 36px;
    background-color: #eee;
    border: 2px solid #000;
    padding: 2px;
}

href " http://www.example.com/ " にアクセスする必要があり、e.target を使用したいと考えていました。しかし、それはスパンオブジェクトを返します。$(this).attr(href) も試しました。.on() メソッドで href にアクセスするにはどうすればよいですか?

異常の例: http://jsfiddle.net/guRXt/1/

4

3 に答える 3

1

e.currentTargetの代わりに使用しe.targetます。タグ内に複数のノードがある場合<a>、どの特定のノードが でクリックされたかがわかりますが、 はイベントが処理されたオブジェクトをe.target示しe.currentTargetます。

hrefプロパティが必要な場合は、 を使用します$(e.currentTarget).attr("href")

于 2013-07-01T18:51:56.713 に答える
0

使用する:

$(function(){
    $('#page-container').on('click','a', function(e){
        e.preventDefault();
        alert($(this).attr('href'));
    })                    
});

この動作中の jsFiddleを確認してください。またe.preventDefault();、クリックしても自動的に href に移動しないようにする必要があります。

于 2013-07-01T18:48:39.080 に答える
0

e.targetイベントをトリガーした要素です。thisイベントがバインドされる要素です。それらは常に同じではありません。をクリックした<span>ので、それが「ターゲット」です。 thisは常に になります<a>

$('body').on('click','#page-container a', function(e){
    alert(this.href);
});
于 2013-07-01T18:51:56.800 に答える