做了一个网页,里面有两个JS特效。对应的代码如下:
JS1:(function($) {
    $.fn.lavaLamp = function(o) {
        o = $.extend({
            fx: "linear",
            speed: 500,
            click: function() {}
        },
        o || {});
        return this.each(function() {
            var b = $(this),
            noop = function() {},
            $back = $('<li class="back"><div class="left"></div></li>').appendTo(b),
            $li = $("li", this),
            curr = $("li.current", this)[0] || $($li[0]).addClass("current")[0];
            $li.not(".back").hover(function() {
                move(this)
            },
            noop);
            $(this).hover(noop,
            function() {
                move(curr)
            });
            $li.click(function(e) {
                setCurr(this);
                return o.click.apply(this, [e, this])
            });
            setCurr(curr);
            function setCurr(a) {
                $back.css({
                    "left": a.offsetLeft + "px",
                    "width": a.offsetWidth + "px"
                });
                curr = a
            };
            function move(a) {
                $back.each(function() {
                    $.dequeue(this, "fx")
                }).animate({
                    width: a.offsetWidth,
                    left: a.offsetLeft
                },
                o.speed, o.fx)
            }
        })
    }
})(jQuery);
if ($("#1").get(0)) {
    $(function() {
        $("#1").lavaLamp({
            fx: "backout",
            speed: 700,
            click: function(event, menuItem) {
                return true;
            }
        });
    });
}
}JS2:(function($) {
$.fn.capslide = function(options) {
var opts = $.extend({}, $.fn.capslide.defaults, options);
return this.each(function() {
$this = $(this);
var o = $.meta ? $.extend({}, opts, $this.data()) : opts;

if(!o.showcaption) $this.find('.ic_caption').css('display','none');
else $this.find('.ic_text').css('display','none');

var _img = $this.find('img:first');
var w = _img.css('width');
var h = _img.css('height');
//$('.ic_caption',$this).css({'color':o.caption_color,'background-color':o.caption_bgcolor,'bottom':'0px','width':w});
$('.overlay',$this).css('background-color',o.overlay_bgcolor).css('opacity',0.8);
$this.css({'width':w , 'height':h, 'border':o.border});
$this.hover(
function () {
if((navigator.appVersion).indexOf('MSIE 7.0') > 0){
$('.overlay',$(this)).fadeIn(500);
$(this).find("h3").slideDown(500).show();
$(this).find("p").slideDown(500).show();}

else
$('.overlay',$(this)).fadeIn(500);
$(this).find("h3").fadeIn(500).show();
$(this).find("p").fadeIn(500).show();
},
function () {
if((navigator.appVersion).indexOf('MSIE 7.0') > 0){
$('.overlay',$(this)).fadeOut(500);
$(this).find("h3").fadeOut(500);
$(this).find("p").fadeOut(500);}
else
$('.overlay',$(this)).fadeOut(500);
$(this).find("h3").slideUp(500).hide();
$(this).find("p").slideUp(500).hide();
}
);
});
};
$.fn.capslide.defaults = {
caption_color : 'white',
caption_bgcolor : 'black',
overlay_bgcolor : 'blue',
border : '1px solid #fff',
showcaption     : true
};
})(jQuery);
现在是加上js1的代码,js2的效果就不会出现,请问各位大神该如何解决? 谢谢!!

解决方案 »

  1.   

    测试的HTML代码呢。。就贴js看不出什么问题。。
      

  2.   


    我不能上传文件,麻烦老大通过下面的地址下载吧,帮忙看看,谢谢!http://www.miaojingyun.com/ceshi.rar
      

  3.   

    if ($("#1").get(0)) {
        $(function() {
            $("#1").lavaLamp({
                fx: "backout",
                speed: 700,
                click: function(event, menuItem) {
                    return true;
                }
            });
        });
    // } 这个花括号是多余的
    }
      

  4.   


    老大,测试第二个效果你可以尝试删除wwwCommon-0713.js中的
    (function($) {
        $.fn.lavaLamp = function(o) {
            o = $.extend({
                fx: "linear",
                speed: 500,
                click: function() {}
            },
            o || {});
            return this.each(function() {
                var b = $(this),
                noop = function() {},
                $back = $('<li class="back"><div class="left"></div></li>').appendTo(b),
                $li = $("li", this),
                curr = $("li.current", this)[0] || $($li[0]).addClass("current")[0];
                $li.not(".back").hover(function() {
                    move(this)
                },
                noop);
                $(this).hover(noop,
                function() {
                    move(curr)
                });
                $li.click(function(e) {
                    setCurr(this);
                    return o.click.apply(this, [e, this])
                });
                setCurr(curr);
                function setCurr(a) {
                    $back.css({
                        "left": a.offsetLeft + "px",
                        "width": a.offsetWidth + "px"
                    });
                    curr = a
                };
                function move(a) {
                    $back.each(function() {
                        $.dequeue(this, "fx")
                    }).animate({
                        width: a.offsetWidth,
                        left: a.offsetLeft
                    },
                    o.speed, o.fx)
                }
            })
        }
    })(jQuery);
    if ($("#1").get(0)) {
        $(function() {
            $("#1").lavaLamp({
                fx: "backout",
                speed: 700,
                click: function(event, menuItem) {
                    return true;
                }
            });
        });
    }
    }
      

  5.   

    大概看了一下,因为jquery默认提供swing和linear 2中动画插件,但是在wwwCommon-0713.js插件中重写了jquery动画插件jQuery.easing,但是没有提供swing和linear这2中插件,jquery.capSlide.js这个js中的slideUp和slideDown和fadeIn/fadeOut又要使用到swing效果,所以导致找不到swing效果而出错将wwwCommon-0713.js中扩展jQuery.easing,而不是直接定义jQuery.easing,将原来的代码替换为下面的即可,红色部分为修改的jQuery.easing=jQuery.extend(jQuery.easing,{easein:function(x,t,b,c,d){return c*(t/=d)*t+b},easeinout:function(x,t,b,c,d){if(t<d/2)return 2*c*t*t/(d*d)+b;var a=t-d/2;return-2*c*a*a/(d*d)+2*c*a/d+c/2+b},easeout:function(x,t,b,c,d){return-c*t*t/(d*d)+2*c*t/d+b},expoin:function(x,t,b,c,d){var a=1;if(c<0){a*=-1;c*=-1}return a*(Math.exp(Math.log(c)/d*t))+b},expoout:function(x,t,b,c,d){var a=1;if(c<0){a*=-1;c*=-1}return a*(-Math.exp(-Math.log(c)/d*(t-d))+c+1)+b},expoinout:function(x,t,b,c,d){var a=1;if(c<0){a*=-1;c*=-1}if(t<d/2)return a*(Math.exp(Math.log(c/2)/(d/2)*t))+b;return a*(-Math.exp(-2*Math.log(c/2)/d*(t-d))+c+1)+b},bouncein:function(x,t,b,c,d){return c-jQuery.easing['bounceout'](x,d-t,0,c,d)+b},bounceout:function(x,t,b,c,d){if((t/=d)<(1/2.75)){return c*(7.5625*t*t)+b}else if(t<(2/2.75)){return c*(7.5625*(t-=(1.5/2.75))*t+.75)+b}else if(t<(2.5/2.75)){return c*(7.5625*(t-=(2.25/2.75))*t+.9375)+b}else{return c*(7.5625*(t-=(2.625/2.75))*t+.984375)+b}},bounceinout:function(x,t,b,c,d){if(t<d/2)return jQuery.easing['bouncein'](x,t*2,0,c,d)*.5+b;return jQuery.easing['bounceout'](x,t*2-d,0,c,d)*.5+c*.5+b},elasin:function(x,t,b,c,d){var s=1.70158;var p=0;var a=c;if(t==0)return b;if((t/=d)==1)return b+c;if(!p)p=d*.3;if(a<Math.abs(c)){a=c;var s=p/4}else var s=p/(2*Math.PI)*Math.asin(c/a);return-(a*Math.pow(2,10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p))+b},elasout:function(x,t,b,c,d){var s=1.70158;var p=0;var a=c;if(t==0)return b;if((t/=d)==1)return b+c;if(!p)p=d*.3;if(a<Math.abs(c)){a=c;var s=p/4}else var s=p/(2*Math.PI)*Math.asin(c/a);return a*Math.pow(2,-10*t)*Math.sin((t*d-s)*(2*Math.PI)/p)+c+b},elasinout:function(x,t,b,c,d){var s=1.70158;var p=0;var a=c;if(t==0)return b;if((t/=d/2)==2)return b+c;if(!p)p=d*(.3*1.5);if(a<Math.abs(c)){a=c;var s=p/4}else var s=p/(2*Math.PI)*Math.asin(c/a);if(t<1)return-.5*(a*Math.pow(2,10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p))+b;return a*Math.pow(2,-10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p)*.5+c+b},backin:function(x,t,b,c,d){var s=1.70158;return c*(t/=d)*t*((s+1)*t-s)+b},backout:function(x,t,b,c,d){var s=1.70158;return c*((t=t/d-1)*t*((s+1)*t+s)+1)+b},backinout:function(x,t,b,c,d){var s=1.70158;if((t/=d/2)<1)return c/2*(t*t*(((s*=(1.525))+1)*t-s))+b;return c/2*((t-=2)*t*(((s*=(1.525))+1)*t+s)+2)+b},linear:function(x,t,b,c,d){return c*t/d+b}});