-1

クリックされたクラスのインデックスを取得しようとしており、jQuery の次のコードを使用していますが、常に 0 (ゼロ) と表示されます。この問題の解決にご協力ください。よろしくお願いします。

$('.image_or_video').live('click', function(){
    var clicked_radio = $(this).index();
    alert(clicked_radio);
});
4

4 に答える 4

1

.live()非推奨であることに注意してください。.on()次のように親要素で使用する必要があります。$('.parent').on('click','.image_or_video',function(){...})

問題を解決するには、次の行を置き換えてみてください: (ドキュメントを見てください)

var clicked_radio = $(this).index();

var clicked_radio = $('.image_or_video').index(this);

または

var clicked_radio = $(this).index('.image_or_video');
于 2013-07-16T19:40:33.400 に答える
0

私はまったく同じjsコードを使用しましたが、うまくいきました:

<!DOCTYPE html>
<html>
<head>

</head>
<body>
<p class="image_or_video">clicky</p>
<p class="image_or_video">clicky</p>
<p class="image_or_video">clicky</p>
<p class="image_or_video">clicky</p>
<p class="image_or_video">clicky</p>
<p class="image_or_video">clicky</p>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js">
</script>
<script>
$('.image_or_video').live('click', function(){
    var clicked_radio = $(this).index();
    alert(clicked_radio);
});
</script>
</body>
</html>

jquery のどのバージョンを使用していますか? ライブは非推奨です。代わりに on() を使用してください。

あなたのコードを上記のコード (古い jQuery で動作します) と比較してください。

于 2013-07-16T19:50:14.857 に答える
0

イベント受信者オブジェクト パラメーターをクリック ハンドラーに追加します。live()フィドルですばやく動作させることはできませんでしたが、フィドルで動作するようになったのは次のとおりです。

$(function() {
    $('.image_or_video').click( function(target){
        var clicked_radio = $(target.target).index('.image_or_video');
        alert(clicked_radio);
    });
});
于 2013-07-16T19:44:52.613 に答える