2010-10-14 72 views
1

我正在編寫我自己的窗口小部件,並且所有工作都很好,除了銷燬方法。看來,所有的事件都無法正常解除綁定...解除綁定窗口小部件事件

(function($) { 
    var _super = $.Widget.prototype; 

    // 
    $.widget("my.cool", { 
     _create: function() { 
      var $self = this, $element = this.widget(); 
      $element.mousedown($self.select); 
      _super._create.apply(this, arguments); 
     }, 
     // Destroying widget 
     destroy: function() { 
      var $element = this.widget(); 
      $element.unbind(".cool"); 
      _super.destroy.apply(this, arguments); 
     }, 
     select: function() { 
      alert("selected"); 
     } 
    }); 
}) (jQuery); 

爲了測試它:

$("<div>").cool().cool("destroy").trigger("mousedown").data("events") 

甚至被燒燬,我會告訴(「選擇」)警報,事件不正確解除綁定我可以在事件數據中看到「mousedown」。

這是怎麼回事?

回答

0

Doh!

我找到了原因,事件應該結合這樣的:

$element.bind("mousedown.cool", $self.select); 

,而不是像這樣:

$element.mousedown($self.select);