1

:lastタイトルが示すように、表示されるときに表示する div を取得しようとしています。

$(function() {
    $('#d').hide();
    var $images = $('#d1 > .c1 > a').clone(),
        $imgShow = 0;
    $('#d1 > .c1').html($('#d1 > .c1 > a:first'));
    $('#d1 > .c1 > a').click(function(e) {
        var $n = $('img', $images).eq(++$imgShow).attr('src');
        $(this).children().attr('src', $n);
        e.preventDefault();
    });
});

</p>

デモについては jfiddle を参照してください

クリックで試してみました:lastが、うまくいかなかったようです(したがって、jfiddleでコメントアウトされています)。さらに、表示されているとき:lastに表示する方が良いオプションですが、どうすればこれを達成できますか?

4

1 に答える 1

2

last呼び出しでを操作しているため、機能していませんDOMhtml()より良いアプローチは、画像の合計数を保存してからdiv、最後の画像に到達したとき (つまりtotalImages == imgShow)を表示することです。

var $images  = $('#d1 > .c1 > a').clone(),
    $imgShow = 0,
    totalImages = $images.length;

// ...

$('#d1 > .c1 > a').click(function(e) {
  var $n = $('img', $images).eq(++$imgShow).attr('src');
  $(this).children().attr('src', $n);
  e.preventDefault();

  if ($imgShow == totalImages) {
    $("#d").show();   
  }
});

フィドル

于 2012-08-21T00:40:07.603 に答える