2012-10-18 85 views
0

我想在javascript中創建構造函數。這個構造函數用於deleteIcon。每當用戶懸停任何元素,如果我想顯示一個刪除圖標,而不是使用此構造函數。但我在這種方法很新,我想在構造函數中創建一個點擊事件。任何人都可以請指導我如何做到這一點?如何在javascript中創建構造函數

function deleteIcon(el) 
{ 
     var self = this; 
     self.button = $("<button type='button' id='removemyparent' />"); 

     self.element = el; 

     self.add = function() { 
      var widths = $(self.element).children().map(function() { return $(this).width(); }); 
      var maxWidth = max(widths); 

      self.button.button({ text: false, icons: { primary: "ui-icon-close" } }); 
      $(self.element).append(self.button); 

      self.button.css({ position: "absolute", top: 0, left: maxWidth - self.button.width() }); 
     } 

     self.remove = function() { 
      $(self.element).find("#" + self.button.attr("id")).remove(); 
     } 

     self.button.click = function() {   //this is not working 
      self.element.remove(); 
     } 

} 
+1

'click'是一個jQuery方法不是屬性。此外,你正在設置一個靜態ID,將被用於所有的deleteIcon實例...設置一個類。 – ahren

+0

@ahren你能告訴我在deleteIcon –

+1

的構造函數中實現點擊事件的更好方法,就像你使用其他jQuery對象一樣......'.click(function(){});' – ahren

回答

4

試試這個:

self.button.click(function() { self.element.remove(); }) 

或:

self.button.on('click', function() { self.element.remove(); }) 
2

有,你可以在JS創建構造幾種方法。

最簡單明瞭的方式是這樣的一個:

// Constructor 
var MyObj=function(){ .... } 

MyObj.prototype = { 
    constructor : MyObj, 
    button: function(){...}, 
    add: function(){...}, 

} 

相關問題