1

JQuery Ajax を使用してデータを取得しています。誰かがタグをクリックしても起動せず、代わりに Ajax を呼び出すように、すべてのアンカー タグをコードに含めたいと考えています。以下は私のコードですが、うまくいきません。

$('.one_item a').each(function(){
    $(this).live('click', function(){
        alert($(this).attr('href'));
        return false;
    });
});

私は JQuery バージョン 1.5 を使用しているので、.live が機能するはずです。何か案は?乾杯。

4

2 に答える 2

4

.liveセレクターに適用する必要があります。を使用する.each()と、動的に追加された要素でイベントを処理する利点が得られません。これは、ループの実行時に見つかった要素を反復しているだけだからです。

$('.one_item a').live('click', function(){
    alert($(this).attr('href'));
    return false;
});
于 2013-07-11T02:21:51.593 に答える
1

.live()セレクターで直接使用できます。

$('.one_item a').live('click', function(e) {
    e.preventDefault();
    alert($(this).attr('href'));
});

このデモを参照してください。

ただし、繰り返しalert($(this).attr('href'));ます。クリックしたアイテムだけで起動するにはどうすればよいですか?

click()次のような別の場所でイベント ループをトリガーしていないことを確認します。

$('.one_item a').each(function() {
    $(this).click();
    // other stuff
});
于 2013-07-11T02:19:24.617 に答える