如何在javascript中创建构造函数

时间:2012-10-18 08:20:42

标签: javascript jquery

我正在尝试在javascript中创建一个构造函数。这个构造函数用于deleteIcon。每当用户悬停任何元素,如果我想在该元素上显示删除图标,而不是我使用此构造函数。但我在这种方法中很新,我想在构造函数中创建一个click事件。任何人都可以指导我如何做到这一点?

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();
        }

 }

2 个答案:

答案 0 :(得分:4)

试试这个:

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

或:

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

答案 1 :(得分:2)

在JS中创建构造函数的方法很少。

最简单明了的方法是:

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

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

}

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