从另一个方法调用javascript类方法

从另一个方法调用javascript类方法,javascript,jquery,Javascript,Jquery,我在Javascript类中从另一个方法调用一个方法时遇到问题 这是密码 函数微调器(最大值、最小值、div\u id){ var最大值=25; var最小值=-25; var默认值=0; this.maxValue=最大值; this.minValue=最小值; this.divId=div\u id; this.spinnerControl;//在getSpinner()方法中填充的spinner控件对象。 this.rotateSpinner=函数(spinnerTextBoxId,向上)

我在Javascript类中从另一个方法调用一个方法时遇到问题

这是密码

函数微调器(最大值、最小值、div\u id){
var最大值=25;
var最小值=-25;
var默认值=0;
this.maxValue=最大值;
this.minValue=最小值;
this.divId=div\u id;
this.spinnerControl;//在getSpinner()方法中填充的spinner控件对象。
this.rotateSpinner=函数(spinnerTextBoxId,向上){
document.getElementById(spinnerTextBoxId).value=up?parseInt(document
.getElementById(spinnerTextBoxId).value)+1:parseInt(文档
.getElementById(spinnerTextBoxId).value)-1;
};
this.getSpinner=函数(){
喷丝头控制=$('')
.attr('id','spinner')
.attr('val',默认值)
。添加($(“
    ”) .addClass(“微调器”) .附加( $(“
  • ”) .append($('') 艾特先生({ id:'向上按钮', 值:'▲;' }).appendTo($('
  • ')) ) ).append($(“
  • ”) .append($('') 艾特先生({ id:'下拉按钮', 值:'▼;' }).appendTo($('
  • ')) ) ) ); var timeoutId=0; $(“#向上按钮”,喷丝头控件).mousedown(函数(){ log(“鼠标按下”); timeoutId=setInterval(this.rotateSpinner('spinner',true),200); }).bind('mouseup mouseleave',function(){ log(“鼠标左键”); //clearTimeout(timeoutId); }); //$(“#downButton”).mousedown(函数(){ //警惕(‘此处’); ////timeoutId=setInterval(“rotateSpinner('spinner',false)”,200; //}).bind('mouseup mouseleave',function(){ //clearTimeout(timeoutId); // }); 返回喷丝头控制; }; //班尾 }
    在这个js文件中,错误出现在firebug中:“Reference error:rotateSpinner”未定义


    为什么会出现它?

    这是指DOM元素,在本例中是“#upButton”。如果您添加了一个指向类的变量,那么在方法中定义函数时可以引用这个变量,而不是
    this

    function Spinner( max_value , min_value , div_id ){
    
    var MAX_VALUE = 25;
    var MIN_VALUE = -25;
    var DEFAULT_VALUE = 0;
    
    
    this.maxValue = max_value;
    this.minValue = min_value;
    this.divId    = div_id;
    this.spinnerControl; //spinner control object that is populated in getSpinner() method.
    
    
    this.rotateSpinner = function (spinnerTextBoxId,up) {
    
        document.getElementById(spinnerTextBoxId).value = up ? parseInt(document
                .getElementById(spinnerTextBoxId).value) + 1 : parseInt(document
                .getElementById(spinnerTextBoxId).value) - 1;
    };
    
    
    this.getSpinner = function( ){
        var self = this;
        spinnerControl = $('<input type="text"></input>')
                .attr('id' , 'spinner')
                .attr('val' , DEFAULT_VALUE)
                    .add( $('<ul></ul>')
                        .addClass("spinner")
                        .append(
                            $('<li></li>')
                            .append($('<input type="button"></input>') 
                                .attr({
                                    id    : 'upButton',
                                    value : '&#9650;'
                                }).appendTo( $('<li></li>') )
                            )   
    
    
                        ).append( $('<li></li>')
                            .append($('<input type="button"></input>') 
                                    .attr({
                                        id    : 'downButton',
                                        value : '&#9660;'
                                    }).appendTo( $('<li></li>') )
                            )
                        )   
    
                    );
    
            var timeoutId = 0;
            $('#upButton' , spinnerControl).mousedown(function() {
                console.log('mouse down');
                timeoutId = setInterval(self.rotateSpinner('spinner' , true ) , 200);
            }).bind('mouseup mouseleave', function() {
                console.log('mouse left');
                //clearTimeout(timeoutId);
            });
    
    
    //      $('#downButton').mousedown(function() {
    //          alert('herer');
    //          //timeoutId = setInterval("rotateSpinner('spinner' , false ) ", 200);
    //      }).bind('mouseup mouseleave', function() {
    //          clearTimeout(timeoutId);
    //      });
    
        return spinnerControl;
    };
    
    
    
    
    
    
    
    //class END 
    }
    
    函数微调器(最大值、最小值、div\u id){
    var最大值=25;
    var最小值=-25;
    var默认值=0;
    this.maxValue=最大值;
    this.minValue=最小值;
    this.divId=div\u id;
    this.spinnerControl;//在getSpinner()方法中填充的spinner控件对象。
    this.rotateSpinner=函数(spinnerTextBoxId,向上){
    document.getElementById(spinnerTextBoxId).value=up?parseInt(document
    .getElementById(spinnerTextBoxId).value)+1:parseInt(文档
    .getElementById(spinnerTextBoxId).value)-1;
    };
    this.getSpinner=函数(){
    var self=这个;
    喷丝头控制=$('')
    .attr('id','spinner')
    .attr('val',默认值)
    。添加($(“
      ”) .addClass(“微调器”) .附加( $(“
    • ”) .append($('') 艾特先生({ id:'向上按钮', 值:'▲;' }).appendTo($('
    • ')) ) ).append($(“
    • ”) .append($('') 艾特先生({ id:'下拉按钮', 值:'▼;' }).appendTo($('
    • ')) ) ) ); var timeoutId=0; $(“#向上按钮”,喷丝头控件).mousedown(函数(){ log(“鼠标按下”); timeoutId=setInterval(self.rotateSpinner('spinner',true),200); }).bind('mouseup mouseleave',function(){ log(“鼠标左键”); //clearTimeout(timeoutId); }); //$(“#downButton”).mousedown(函数(){ //警惕(‘此处’); ////timeoutId=setInterval(“rotateSpinner('spinner',false)”,200; //}).bind('mouseup mouseleave',function(){ //clearTimeout(timeoutId); // }); 返回喷丝头控制; }; //班尾 }
      指的是DOM元素,在本例中是“#upButton”。如果您添加了一个指向类的变量,那么在方法中定义函数时可以引用这个变量,而不是
      this

      function Spinner( max_value , min_value , div_id ){
      
      var MAX_VALUE = 25;
      var MIN_VALUE = -25;
      var DEFAULT_VALUE = 0;
      
      
      this.maxValue = max_value;
      this.minValue = min_value;
      this.divId    = div_id;
      this.spinnerControl; //spinner control object that is populated in getSpinner() method.
      
      
      this.rotateSpinner = function (spinnerTextBoxId,up) {
      
          document.getElementById(spinnerTextBoxId).value = up ? parseInt(document
                  .getElementById(spinnerTextBoxId).value) + 1 : parseInt(document
                  .getElementById(spinnerTextBoxId).value) - 1;
      };
      
      
      this.getSpinner = function( ){
          var self = this;
          spinnerControl = $('<input type="text"></input>')
                  .attr('id' , 'spinner')
                  .attr('val' , DEFAULT_VALUE)
                      .add( $('<ul></ul>')
                          .addClass("spinner")
                          .append(
                              $('<li></li>')
                              .append($('<input type="button"></input>') 
                                  .attr({
                                      id    : 'upButton',
                                      value : '&#9650;'
                                  }).appendTo( $('<li></li>') )
                              )   
      
      
                          ).append( $('<li></li>')
                              .append($('<input type="button"></input>') 
                                      .attr({
                                          id    : 'downButton',
                                          value : '&#9660;'
                                      }).appendTo( $('<li></li>') )
                              )
                          )   
      
                      );
      
              var timeoutId = 0;
              $('#upButton' , spinnerControl).mousedown(function() {
                  console.log('mouse down');
                  timeoutId = setInterval(self.rotateSpinner('spinner' , true ) , 200);
              }).bind('mouseup mouseleave', function() {
                  console.log('mouse left');
                  //clearTimeout(timeoutId);
              });
      
      
      //      $('#downButton').mousedown(function() {
      //          alert('herer');
      //          //timeoutId = setInterval("rotateSpinner('spinner' , false ) ", 200);
      //      }).bind('mouseup mouseleave', function() {
      //          clearTimeout(timeoutId);
      //      });
      
          return spinnerControl;
      };
      
      
      
      
      
      
      
      //class END 
      }
      
      函数微调器(最大值、最小值、div\u id){
      var最大值=25;
      var最小值=-25;
      var默认值=0;
      this.maxValue=最大值;
      this.minValue=最小值;
      this.divId=div\u id;
      this.spinnerControl;//在getSpinner()方法中填充的spinner控件对象。
      this.rotateSpinner=函数(spinnerTextBoxId,向上){
      document.getElementById(spinnerTextBoxId).value=up?parseInt(document
      .getElementById(spinnerTextBoxId).value)+1:parseInt(文档
      .getElementById(spinnerTextBoxId).value)-1;
      };
      this.getSpinner=函数(){
      var self=这个;
      喷丝头控制=$('')
      .attr('id','spinner')
      .attr('val',默认值)
      。添加($(“
        ”)
        new Spinner().rotateSpinner(arg1, arg2);