0

div ".gallery"のインスタンスが複数あり、クリック時に.galleryの特定のインスタンスが置かれているdivのIDを取得したいと思います。これにより、そのdivのギャラリーでのみ画像を変更するために使用できる変数が入力されます。問題は、ページが画像の交換を試みてから変数を変更するように見えるため、最初のクリックで画像が変更されないことです。さらに悪いことに、別のギャラリーを初めてクリックすると、画像が変更されます。最後に操作したギャラリー。現在、クリックしたdivを報告するdivをクリックするたびにポップアップするjavascriptアラートがあります。あなたがそれで遊んでみたいなら、私はここに現在の状態のページを持っています。www.ryanscasey.com/redesign

ストレートJavaScriptは次のとおりです。

$(document).ready(function() {

    var clickedDiv;

    $('.gallery').click(function() {
        clickedDiv = $(this).parent().parent().attr("id");
        $('#' + clickedDiv + ' .thumbs img').click(function() {
            $('#' + clickedDiv + ' .largeImage').html($(this).attr('alt'));
        });
        alert(clickedDiv);
    });
});
4

1 に答える 1

0

これがあなたの望むものだと思います。複数のクリックイベントをバインドする必要があるようには思えません。.galleryあなたがそれを持っていたように、それはアイテムがクリックされたときはいつでもクリックイベントをバインドしました。これがうまくいかない場合は、私に知らせてください。そこから作業を試みます。

$(document).ready(function() {
    $('.gallery .thumbs img').click(function() {
        var $this = $(this),
            $gallery = $this.closest('.gallery'),
            $large = $gallery.find('.largeImage');

        $large.html($this.attr('alt'));
    });
});

編集:私はあなたのサイトを見て、コードを調整しました。クリックイベントをギャラリー全体ではなくサムネイルにバインドする必要があります。

于 2012-05-22T18:29:31.383 に答える