2012-10-28 2 views
0

작은 플러그인 with this minifier을 축소하려고 시도했지만 잘못되었습니다. (* a.b 및 c는 정의되지 않음, 등 *)js-minifier 사용 방법

잘못된 것이 있는지 또는 온라인 도구가 유효한지 확인하는 사람이 있습니까?

감사, 리처드

편집 * 플러그인은 *

(function($) { 

$.fn.bar = function(options) { 
    var opts = $.extend({}, $.fn.bar.defaults, options); 
    return this.each(function() { 
     $this = $(this); 
     var o = $.meta ? $.extend({}, opts, $this.data()) : opts; 

     $this.click(function(e){ 
      if(!$('.jbar').length){ 
       var _remove_cross = ""; 
       timeout = setTimeout(function(){$.fn.bar.removebar();},o.time); 
       var _message_span = $(document.createElement('span')).addClass('jbar-content').html(o.message); 
       _message_span.css({"color" : o.color}); 
       var _wrap_bar; 
       _wrap_bar = (o.position == 'bottom') ? 
       $(document.createElement('div')).addClass('jbar jbar-bottom'): 
       $(document.createElement('div')).addClass('jbar jbar-top') ; 

       _wrap_bar.css({"background-color" : o.background_color}); 
       if(o.removebutton){ 
        _remove_cross = $(document.createElement('a')).addClass('jbar-cross'); 
        _remove_cross.click(function(e){$.fn.bar.removebar();}); 
       } 
       else{    
        _wrap_bar.css({"cursor" : "pointer"}); 
        _wrap_bar.click(function(e){$.fn.bar.removebar();}); 
       } 
       _wrap_bar.append(_message_span).append(_remove_cross).hide().insertBefore($('.content')).fadeIn('fast'); 
      }else{ 
       $('.jbar').find('.jbar-content').html(o.message); 
      } 
     }); 

     if(o.auto)$this.trigger('click'); 

    }); 
}; 
var timeout; 
$.fn.bar.removebar = function(txt) { 
    if($('.jbar').length){ 
     clearTimeout(timeout); 
     $('.jbar').fadeOut('fast',function(){ 
      $(this).remove(); 
     }); 
    } 
}; 
$.fn.bar.defaults = { 
    background_color : '#FFFFFF', 
    color    : '#191919', 
    position   : 'top', 
    removebutton  : false, 
    time    : 8000, 
    auto:true 
}; 
})(jQuery); 
+1

나는 압축기를 모른다, 그러나 당신은 [대중적인 그들 중 하나]를 시도 할지도 모르다 (http://stackoverflow.com/questions/702907/what-are-some-good-css-and-js- 생산 코드 용 최소화 기). –

+0

감사합니다, 나는 이것도 좋다고 생각, Google에서 그것을 가지고, 내가 그것을 확인합니다 – Richard

+1

그게 아니 minification의 문제 .. 귀하의 코드는 버그입니다 .. http://jsbin.com/ipemud/1/edit – lrsjng

답변

1

당신은 그래서 당신이 그것을 사용할 수 있습니다 UglifyJS의 온라인 버전을 사용하거나 GitHub에 소스를 사용할 수 있습니다 지금은 오류없이 당신 자신. 당신의 JS에 대한

축소 된 버전,

(function(e){e.fn.bar=function(n){var r=e.extend({},e.fn.bar.defaults,n);return this.each(function(){$this=e(this);var n=e.meta?e.extend({},r,$this.data()):r;$this.click(function(r){if(!e(".jbar").length){var i="";t=setTimeout(function(){e.fn.bar.removebar()},n.time);var s=e(document.createElement("span")).addClass("jbar-content").html(n.message);s.css({color:n.color});var u;u=n.position=="bottom"?e(document.createElement("div")).addClass("jbar jbar-bottom"):e(document.createElement("div")).addClass("jbar jbar-top"),u.css({"background-color":n.background_color}),n.removebutton?(i=e(document.createElement("a")).addClass("jbar-cross"),i.click(function(t){e.fn.bar.removebar()})):(u.css({cursor:"pointer"}),u.click(function(t){e.fn.bar.removebar()})),u.append(s).append(i).hide().insertBefore(e(".content")).fadeIn("fast")}else e(".jbar").find(".jbar-content").html(n.message)}),n.auto&&$this.trigger("click")})};var t;e.fn.bar.removebar=function(n){e(".jbar").length&&(clearTimeout(t),e(".jbar").fadeOut("fast",function(){e(this).remove()}))},e.fn.bar.defaults={background_color:"#FFFFFF",color:"#191919",position:"top",removebutton:!1,time:8e3,auto:!0}})(jQuery) 
+0

끝까지 누락 된 세미콜론을 제외하고 uglify 작동 – Richard

0

다음에 제공 www.blimptontech.com 샷이 요구를 축소하세요. 대단한 도구, UglifyJS를 사용합니다. 프로세스에서 파일을 축소하면서 파일을 단일 파일로 결합 할 수도 있습니다.