在我自己的jquery文件中合并lazyload插件jquery代码

时间:2012-08-29 07:26:13

标签: jquery

希望你不会笑,但我想知道我是否可以这样做:

我有一个普通的js文件,它有几个函数,看起来像这样:(我只列出了一个函数来保持代码简短)

function traffic(){
    var ANCHOR = $("ul.trf").data('anchor'); 
    var i = 0;
    $('ul.trf li a').each(function() { 
        var $this = $(this); 
        if ($this.text() === ANCHOR) { 
            i++;
            if(i < 10){
                $this.html(''+ANCHOR+' 0'+i+''); 
            }
            else{
                $this.html(''+ANCHOR+' '+i+'');
            }
        } 
    }); 
}

jQuery(document).ready(function($){      
    noborder(); // Removes The Last li Border
    menu_border(); // Ads Borders to Menu on index.php
    gallery();
    traffic();
});  

我还有第二个带有lazyload插件代码的jquery文件:

(这是最小版本)

(function(a,b){var c=a(b);a.fn.lazyload=function(d){function h(){var b=0;e.each(function(){var c=a(this);if(g.skip_invisible&&!c.is(":visible"))return;if(!a.abovethetop(this,g)&&!a.leftofbegin(this,g))if(!a.belowthefold(this,g)&&!a.rightoffold(this,g))c.trigger("appear");else if(++b>g.failure_limit)return!1})}var e=this,f,g={threshold:0,failure_limit:0,event:"scroll",effect:"show",container:b,data_attribute:"original",skip_invisible:!0,appear:null,load:null};return d&&(undefined!==d.failurelimit&&(d.failure_limit=d.failurelimit,delete d.failurelimit),undefined!==d.effectspeed&&(d.effect_speed=d.effectspeed,delete d.effectspeed),a.extend(g,d)),f=g.container===undefined||g.container===b?c:a(g.container),0===g.event.indexOf("scroll")&&f.bind(g.event,function(a){return h()}),this.each(function(){var b=this,c=a(b);b.loaded=!1,c.one("appear",function(){if(!this.loaded){if(g.appear){var d=e.length;g.appear.call(b,d,g)}a("<img />").bind("load",function(){c.hide().attr("src",c.data(g.data_attribute))[g.effect](g.effect_speed),b.loaded=!0;var d=a.grep(e,function(a){return!a.loaded});e=a(d);if(g.load){var f=e.length;g.load.call(b,f,g)}}).attr("src",c.data(g.data_attribute))}}),0!==g.event.indexOf("scroll")&&c.bind(g.event,function(a){b.loaded||c.trigger("appear")})}),c.bind("resize",function(a){h()}),h(),this},a.belowthefold=function(d,e){var f;return e.container===undefined||e.container===b?f=c.height()+c.scrollTop():f=a(e.container).offset().top+a(e.container).height(),f<=a(d).offset().top-e.threshold},a.rightoffold=function(d,e){var f;return e.container===undefined||e.container===b?f=c.width()+c.scrollLeft():f=a(e.container).offset().left+a(e.container).width(),f<=a(d).offset().left-e.threshold},a.abovethetop=function(d,e){var f;return e.container===undefined||e.container===b?f=c.scrollTop():f=a(e.container).offset().top,f>=a(d).offset().top+e.threshold+a(d).height()},a.leftofbegin=function(d,e){var f;return e.container===undefined||e.container===b?f=c.scrollLeft():f=a(e.container).offset().left,f>=a(d).offset().left+e.threshold+a(d).width()},a.inviewport=function(b,c){return!a.rightofscreen(b,c)&&!a.leftofscreen(b,c)&&!a.belowthefold(b,c)&&!a.abovethetop(b,c)},a.extend(a.expr[":"],{"below-the-fold":function(b){return a.belowthefold(b,{threshold:0})},"above-the-top":function(b){return!a.belowthefold(b,{threshold:0})},"right-of-screen":function(b){return a.rightoffold(b,{threshold:0})},"left-of-screen":function(b){return!a.rightoffold(b,{threshold:0})},"in-viewport":function(b){return!a.inviewport(b,{threshold:0})},"above-the-fold":function(b){return!a.belowthefold(b,{threshold:0})},"right-of-fold":function(b){return a.rightoffold(b,{threshold:0})},"left-of-fold":function(b){return!a.rightoffold(b,{threshold:0})}})})(jQuery,window)   

有没有办法将两个文件合并为一个?

我在页脚中调用了lazyload插件:

$("img.lazy").show();
$(window).bind("load", function() { 
    var timeout = setTimeout(function(){$("img.lazy").lazyload({effect : "fadeIn"})}, 800);
    /*$("img.lazy").show().lazyload({effect : "fadeIn"}); */
    /*$("img.lazy").lazyload({effect : "fadeIn"})*/
}); 

1 个答案:

答案 0 :(得分:1)

您应该可以将一个文件的来源复制到另一个文件中而不会出现任何问题。

在使用之前,请确保已定义所有内容。一个好的方法是首先包括jQuery,然后是任何插件,然后是你自己的代码。

如果它们位于同一个文件或单独的文件中并不重要 - 唯一重要的是订单。