2010-10-10 2 views
2

Я только что обновил свой код до jqueryui 1.8, и он дал мне эту ошибку: this._mouseInit is not a function. Как я могу это исправить? У меня есть виджет, который мышью начинает перетаскивать и останавливаться. Вот мой код:this._mouseInit() не является функцией

$.widget("ui.boxTool", $.extend({}, $.ui.mouse, { 

      _create: function() { 
       this.element.addClass("ui-boxTool"); 
       this.dragged = false; 

       this._mouseInit(); 
       this.width = $('#toPinpoint').width(); 
       this.height = $('#toPinpoint').height(); 

       this.helper = $(document.createElement('div')) 
        .css({border:'1px dashed #c2c0c0'}) 
        .css({cursor:'crosshair'}) 
        .addClass("ui-boxTool-helper"); 
       }, 

       destroy: function() { 
       this.element 
        .removeClass("ui-boxTool ui-boxTool-disabled") 
        .removeData("boxTool") 
        .unbind(".selectable"); 
       this._mouseDestroy(); 

       return this; 
       }, 

      _mouseStart: function(event) { 
      var self = this; 

      this.opos = [event.pageX, event.pageY]; 

      if (this.options.disabled) 
       return; 

      var options = this.options; 

      this._trigger("start", event); 

      $(options.appendTo).append(this.helper); 

      this.helper.css({ 
       "z-index": 100, 
       "position": "absolute", 
       "left": event.clientX, 
       "top": event.clientY, 
       "width": 0, 
       "height": 0 
      }); 
      }, 

      _mouseDrag: function(event) { 
      var self = this; 
      this.dragged = true; 

     ... 

      return false; 
      }, 

      _mouseStop: function(event) { 
      var self = this; 

      this.dragged = false; 

      var options = this.options; 

      var clone = this.helper.clone() 
       .removeClass('ui-boxTool-helper').appendTo(options.appendTo); 



      this._trigger("stop", event, { box: clone }); 

      this.helper.remove(); 
      //$('.view-mode').remove(this.helper); 
      return false; 
      } 

     })); 

ответ

3

Синтаксис немного изменился, ваше открытие линии:

$.widget("ui.boxTool", $.extend({}, $.ui.mouse, { 

теперь должно быть:

​ $.widget("ui.boxTool", $.ui.mouse, { 

Убедитесь, что изменить последнюю строку, чтобы соответствовать, а также , })); должно быть только }); сейчас.

Смежные вопросы