1

正如标题所说,我正在尝试让一个 div 来显示何时:last显示,这就是我到目前为止所拥有的

$(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不起作用,因为您正在DOM使用html()呼叫来操纵。更好的方法是存储图像总数,然后显示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 回答