通过jquery的prev/next方法获得上一个、下一个显示或隐藏的LI标签,再控制标签的CSS类来实现LI标签的滚动显示。
类似的代码我以前用过,是正常的。
今天用到一个新网站发现显示不正常,好像是prev/next方法无法正常获取元素,求指点。
测试网站:http://www.xdnz120.com/bb/4HTML代码<div id="smallpic">
<a href="javascript:viewPre()"><img src="images/left.gif" width="35" height="154" class="left" /></a>
<ul id="jinxuan">
<li class="view"><a href="javascript:void(0)" onclick="javascript:viewbig('/bb/upfile/2012720115958.jpg')"><img src="/bb/upfile/2012720115958_f.jpg" /></a></li>
<li class="view"><a href="javascript:void(0)" onclick="javascript:viewbig('/bb/upfile/2012720112159.jpg')"><img src="/bb/upfile/2012720112159_f.jpg" /></a></li>
<li class="view"><a href="javascript:void(0)" onclick="javascript:viewbig('/bb/upfile/2012720114059.jpg')"><img src="/bb/upfile/2012720114059_f.jpg" /></a></li>
<li class="hide"><a href="javascript:void(0)" onclick="javascript:viewbig('/bb/upfile/2012720115958.jpg')"><img src="/bb/upfile/2012720115958_f.jpg" /></a></li>
<li class="hide"><a href="javascript:void(0)" onclick="javascript:viewbig('/bb/upfile/2012720112159.jpg')"><img src="/bb/upfile/2012720112159_f.jpg" /></a></li>
<li class="hide"><a href="javascript:void(0)" onclick="javascript:viewbig('/bb/upfile/2012720114059.jpg')"><img src="/bb/upfile/2012720114059_f.jpg" /></a></li>
</ul>
<a href="javascript:viewNext()"><img src="images/right.gif" width="35" height="154" class="left" /></a>
</div>
javascript代码: function viewPre()
{
if ($("#jinxuan li.view").prev(".hide").length > 0)
{
var views = $("#jinxuan li.view");
var view = views[views.length - 1];
var prevview = $(view).prev(".hide");
prevview.removeClass("hide");
prevview.addClass("view");
$(view).removeClass("view");
$(view).addClass("hide");
}
}
function viewNext()
{
if ($("#jinxuan li.view").next(".hide").length > 0)
{
var view = $("#jinxuan li.view")[0];
var nextview=$(view).next(".hide");
nextview.removeClass("hide");
nextview.addClass("view");
$(view).removeClass("view");
$(view).addClass("hide");
}
}
function viewbig(file)
{
$("#bcimg").attr("src",file);
}
类似的代码我以前用过,是正常的。
今天用到一个新网站发现显示不正常,好像是prev/next方法无法正常获取元素,求指点。
测试网站:http://www.xdnz120.com/bb/4HTML代码<div id="smallpic">
<a href="javascript:viewPre()"><img src="images/left.gif" width="35" height="154" class="left" /></a>
<ul id="jinxuan">
<li class="view"><a href="javascript:void(0)" onclick="javascript:viewbig('/bb/upfile/2012720115958.jpg')"><img src="/bb/upfile/2012720115958_f.jpg" /></a></li>
<li class="view"><a href="javascript:void(0)" onclick="javascript:viewbig('/bb/upfile/2012720112159.jpg')"><img src="/bb/upfile/2012720112159_f.jpg" /></a></li>
<li class="view"><a href="javascript:void(0)" onclick="javascript:viewbig('/bb/upfile/2012720114059.jpg')"><img src="/bb/upfile/2012720114059_f.jpg" /></a></li>
<li class="hide"><a href="javascript:void(0)" onclick="javascript:viewbig('/bb/upfile/2012720115958.jpg')"><img src="/bb/upfile/2012720115958_f.jpg" /></a></li>
<li class="hide"><a href="javascript:void(0)" onclick="javascript:viewbig('/bb/upfile/2012720112159.jpg')"><img src="/bb/upfile/2012720112159_f.jpg" /></a></li>
<li class="hide"><a href="javascript:void(0)" onclick="javascript:viewbig('/bb/upfile/2012720114059.jpg')"><img src="/bb/upfile/2012720114059_f.jpg" /></a></li>
</ul>
<a href="javascript:viewNext()"><img src="images/right.gif" width="35" height="154" class="left" /></a>
</div>
javascript代码: function viewPre()
{
if ($("#jinxuan li.view").prev(".hide").length > 0)
{
var views = $("#jinxuan li.view");
var view = views[views.length - 1];
var prevview = $(view).prev(".hide");
prevview.removeClass("hide");
prevview.addClass("view");
$(view).removeClass("view");
$(view).addClass("hide");
}
}
function viewNext()
{
if ($("#jinxuan li.view").next(".hide").length > 0)
{
var view = $("#jinxuan li.view")[0];
var nextview=$(view).next(".hide");
nextview.removeClass("hide");
nextview.addClass("view");
$(view).removeClass("view");
$(view).addClass("hide");
}
}
function viewbig(file)
{
$("#bcimg").attr("src",file);
}
html代码调整了一下。正常显示的是4张,点向右的图片链接,左边第一张隐藏,右边显示一张新的,达到滚动显示的效果。
var v = $("#jinxuan li.view"), h = v.eq(0).prev();
if (h.size() > 0) {
h.attr('class', 'view');
v.filter(':last').attr('class', 'hide');
}
} function viewNext() {
var v = $("#jinxuan li.view"), h = v.filter(':last').next();
if (h.size() > 0) {
h.attr('class', 'view');
v.eq(0).attr('class', 'hide');
}
}