jquery show div when:last显示

时间:2012-08-21 00:33:07

标签: jquery

正如标题所说我试图在显示: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();
    });
});

see jfiddle for demo

我尝试使用:last点击,但这似乎不起作用(因此它在jfiddle中被注释掉了)加上在:last处于显示状态时显示它是一个更好的选择,怎么能实现呢?

1 个答案:

答案 0 :(得分: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();   
  }
});

Fiddle