通过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);
   }

解决方案 »

  1.   

    你是一次显示3张还是一张?看你的HTML结构是一次3张?
      

  2.   


    html代码调整了一下。正常显示的是4张,点向右的图片链接,左边第一张隐藏,右边显示一张新的,达到滚动显示的效果。
      

  3.   

        function viewPre() {
            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');
            }
        }