我在一个小jquery函数上工作,但我有点卡住了。我想要做的是当我点击next和prev链接向我展示基于img的下一个和之前的img with class =“clicked”。我知道我可以使用find()函数,但我真的不知道如何实现它。
HTML
<div class="thumbs_img">
<a href="#p" class="prev">Prev</a>
<img src="images/single_slider1.png" class="gallerythumbnail">
<img src="images/single_slider2.png" class="gallerythumbnail">
<img src="images/single_slider3.png" class="gallerythumbnail">
<img src="images/single_slider4.png" class="gallerythumbnail clicked">
<img src="images/single_slider5.png" class="gallerythumbnail">
<img src="images/single_slider6.png" class="gallerythumbnail">
<img src="images/single_slider7.png" class="gallerythumbnail">
<a href="#n" class="next">Next</a>
</div>
的js
$(document).ready(function() {
$('.gallerythumbnail').click(function(){
$('#homeprod').removeClass('clicked');
$('.gallerythumbnail').removeClass('clicked');
$(this).toggleClass('clicked');
});
$('.showimagediv').show();
$('.gallerythumbnail').on('click', function() {
var img = $('<img />', {src : this.src,
'class': 'fullImage'
});
$('.showimagediv').html(img).show();
});
});
的CSS
.showimagediv {
display: none;
width: 100%;
height: 474px;
background-color: #000;
}
.gallerythumbnail{
margin-left: 5px;
margin-right: 5px;
width:80px;
height: 80px;
cursor:pointer;
}
.slider_prod{
border: 2px solid #000;
}
.thumbs_img{
margin-top: 10px;
}
.clicked {outline: 2px solid #fdb900;}
.fullImage{
width: 750px;
height: 474px;
}
.prev{
background-image: url('images/arrow_left.png');
background-position: center center;
background-repeat: no-repeat;
padding-left: 20px;
padding-right: 25px;
padding-top: 30px;
padding-bottom: 35px;
margin-right: 3px;
}
.next{
background-image: url('images/arrow_right.png');
background-position: center center;
background-repeat: no-repeat;
padding-left: 25px;
padding-right: 20px;
padding-top: 30px;
padding-bottom: 35px;
margin-left: 3px;
}
答案 0 :(得分:3)
你可以分别触发next / prev点击按钮上的.clicked
元素的下一个/上一个图像元素。点击这个:
$('.next').click(function(){
if($('.clicked').next().is(':last'))
$('.clicked').next().click();
});
$('.prev').click(function(){
if($('.clicked').prev().is(':first'))
$('.clicked').prev().click();
});
<强> Working Demo 强>
答案 1 :(得分:3)
当您在第一张图片上点击并且点击&#34;上一页&#34;或者在最后一张图片上点击&#34;下一步&#34;
$('.next').click(function(){
if(!$(".clicked").is(".gallerythumbnail:last"))
{
$('.clicked').next().click();
}
});
$('.prev').click(function(){
if(!$(".clicked").is(".gallerythumbnail:first"))
{
$('.clicked').prev().click();
}
});
如果偶然你做希望它在最终案例中循环
$('.next').click(function(){
if(!$(".clicked").is(".gallerythumbnail:last"))
{
$('.clicked').next().click();
}
else
{
$(".gallerythumbnail:first").click();
}
});
$('.prev').click(function(){
if(!$(".clicked").is(".gallerythumbnail:first"))
{
$('.clicked').prev().click();
}
else
{
$(".gallerythumbnail:last").click();
}
});
答案 2 :(得分:0)
这里有一个小提琴http://jsfiddle.net/keypaul/7mUmK/28/
$(".thumbs_img a").click(function(e){
var c = $(this).attr('class');
skipImg(c);
e.preventDefault();
});
function skipImg(c){
var sel = $('img.clicked'),
l = $('.thumbs_img img').length,
n;
if( c == "next"){
n = $('.clicked').next();
if(n.index() > l){
n = $('.thumbs_img img').eq(0);
}
}else{
n = $('.clicked').prev();
if(n.index() <= 0){
n = $('.thumbs_img img').eq(l - 1);
}
}
n.addClass('clicked');
sel.removeClass('clicked');
//here call a function to change big img
}