正如标题所说我试图在显示: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();
});
});
我尝试使用:last
点击,但这似乎不起作用(因此它在jfiddle中被注释掉了)加上在:last
处于显示状态时显示它是一个更好的选择,怎么能实现呢?
答案 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();
}
});