2012-05-15 1 views
0

간단한 진행 위젯을 만들려고합니다. 그러나 나는 _showProgress을 몇 번이고 반복해서 오류가 발생하지 않습니다.jQuery UI 위젯이 동봉 된 함수를 찾을 수 없습니다.

(function ($, undefined) { 
    $.widget("AOne.ProgressBar", { 

     options: { max: 100, min: 0, current: 0, time: 1000, stepWidth: 1 }, 

     innerDiv: $("<div></div>").css({ overflow: 'hidden', clear: 'both', 
         height: '10px', width: '0px', 
         background: 'transparent url("Progress.gif") repeat-x 
         scroll left center' }).html("&nbsp;"), 

     _create: function() { 
      this.element.append(this.innerDiv); 
      maxWidth = this.element.outerWidth(); 
      this.options.stepWidth = maxWidth/this.options.max; 
     }, 

     _init: function() { 
      this.intervalId = setInterval(function() { 
       this._showProgress(); 
      }, 
      this.options.time); 
     }, 

     _showProgress: function() { 
      this.options.current += 1; 

      if (this.options.current < this.options.max) { 
       this.innerDiv.css({ width: this.options.stepWidth * 
               this.options.current + 'px' }); 
      } else { 
       window.clearInterval(this.intervalId); 
      } 
     }, 

     _setOption: function (key, value) { 
      $.Widget.prototype._setOption.apply(this, arguments); 
     }, 

     destroy: function() { 
      $.Widget.prototype.destroy.call(this); 
     } 
    }); 
})(jQuery); 

답변

1

범위의 문제 일 수 있습니까? 이것을 시도하십시오 :

_init: function() { 
    that = this; 
    this.intervalId = setInterval(function() { 
     that._showProgress(); 
    }, 
    this.options.time); 
}, 
+0

이걸로 2 시간을 낭비했습니다. 너 락! – TheVillageIdiot