js问题,大神请进,指教一下小白

$(document).ready(function(){$(function(){$("#tpqhspan:first").addClass("spatb");$("#... $(document).ready(function() {
$(function(){
$("#tpqh span:first").addClass("spatb");
$("#imgs ul").not(":first").hide();
$("#tpqh span").click(function(){
$(this).addClass("spatb").siblings().removeClass("spatb");
var index = $("#tpqh span").index(this);
$("#imgs ul").eq(index).show().siblings().hide();
})
})
//自动轮换代码
$(function(){
$("#tpqh ul:first").css('display','block');
autoScroll();
contentHover();
currentHover();

});
var i=-1; //第i+1个tab开始;
var offset = 5000; //轮换时间
var timer = null;
function autoScroll(){
var n = $("#tpqh span").length - 1;
i++;
if(i > n)
i=0;
slide(i);
timer = window.setTimeout(autoScroll,offset);
}
function slide(i){
$("#tpqh span").eq(i).addClass("spatb").siblings().removeClass("spatb");
$("#imgs ul").eq(i).show().siblings().hide();
}
function currentHover(){
$("#tpqh span").hover(function(){
if(timer){
clearTimeout(timer);
i = $(this).prevAll().length;
slide(i);
}
},function(){
timer = window.setTimeout(autoScroll,offset);
this.blur();
return false;
})
}
function contentHover(){
$("#imgs ul").hover(function(){
if(timer){
clearTimeout(timer);
i = $(this).prevAll().length;
slide(i);
}
},function(){
timer = window.setTimeout(autoScroll,offset);
this.blur();
return false;
})
}
});

这个是一图片轮播的特效代码。我现在需要使用多个这样的效果,由于完全是js小白,所以我实现功能的时候是复制多一次代码,再把里面对应的id、tag一一改过来。这样的话代码就很重复。我知道可以写成一个函数什么之类的,然后用简单的调用把对应的id、tag值传给这个函数就可以的,我尝试了多次,但始终是太小白了,最后没能成功。求大神帮忙把这段代码封装成一个函数,和调用方法。(最好能有注释,这样我可以学习一下)。谢谢
回453455492大神的
IE6下仍不正常。时间问题,开始加载页面时空白设置时间长度再显示。
展开
 我来答
云手机妞妞
推荐于2016-09-01 · TA获得超过156个赞
知道小有建树答主
回答量:213
采纳率:0%
帮助的人:174万
展开全部
(function($) {
  var methods = {
    init: function(setting) {
      return this.each(function() {
        var $this = $(this);
        var defaults = {
          imgsSelector: "#imgs",
          imgItemSelector:"ul",
          itemSelector:"span",
          itemClassName:"spatb"
        };
        setting=$.extend({},defaults,setting);

        $this.find(setting.itemSelector).first().addClass(setting.itemClassName);
        $(setting.imgsSelector).find(setting.imgItemSelector).not(":first").hide();
        $this.find(setting.itemSelector).click(function() {
          $(this).addClass(setting.itemClassName).siblings().removeClass(setting.itemClassName);
          var index = $this.find(setting.itemSelector).index(this);
          $(setting.imgsSelector).find(setting.imgItemSelector).eq(index).show().siblings().hide();
        })
        $this.find(setting.imgItemSelector).first().css('display', 'block');
        autoScroll();
        contentHover();
        currentHover();
        var i = -1; //第i+1个tab开始;
        var offset = 5000; //轮换时间
        var timer = null;

        function autoScroll() {
          var n = $this.find(setting.itemSelector).length - 1;
          i++;
          if (i > n)
            i = 0;
          slide(i);
          timer = window.setTimeout(autoScroll, offset);
        }

        function slide(i) {
          $this.find(setting.itemSelector).eq(i).addClass("spatb").siblings().removeClass("spatb");
          $(setting.imgsSelector).find(setting.imgItemSelector).eq(i).show().siblings().hide();
        }

        function currentHover() {
          $this.find(setting.itemSelector).hover(function() {
            if (timer) {
              clearTimeout(timer);
              i = $(this).prevAll().length;
              slide(i);
            }
          }, function() {
            timer = window.setTimeout(autoScroll, offset);
            this.blur();
            return false;
          })
        }

        function contentHover() {
          $(setting.imgsSelector).find(setting.imgItemSelector).hover(function() {
            if (timer) {
              clearTimeout(timer);
              i = $(this).prevAll().length;
              slide(i);
            }
          }, function() {
            timer = window.setTimeout(autoScroll, offset);
            this.blur();
            return false;
          })
        }

      });
    },
  };
  $.fn.jSlider=function(setting){
    return methods.init.apply(this, arguments);
  }
})(jQuery)

$(function() {
  $("#tpqh").jSlider({
    imgsSelector: "#imgs",
    imgItemSelector:"ul",
    itemSelector:"span",
    itemClassName:"spatb"
  });
});
更多追问追答
追问
非常感谢。可以使用。不过,全部的切换时间都相同的,怎么加个切换时间的数传递过去的?让每个的切换时间不一样。
另外,在IE6下无效。
追答
继续回答有字数限制,我就不贴代码了,你把offset这个变量放到defaults里面,然后引用的地方改成setting.offset就可以了。你原来的代码在IE6下可以使用吗?你试下,因为不知道你html代码结构是什么样的,这个代码我没有试过
supersgb
2014-01-28 · TA获得超过1094个赞
知道小有建树答主
回答量:1005
采纳率:0%
帮助的人:674万
展开全部
一般做法不是改js代码,而是修改css。

做法有问题。

$("#imgs ul")这样的匹配可以换成css伪类匹配。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式