0

JavaScriptでコンストラクタを作成しようとしています。このコンストラクターは、deleteIcon 用です。ユーザーが任意の要素にカーソルを合わせるたびに、その要素の上に削除アイコンを表示したい場合は、このコンストラクターを使用しています。しかし、私はこのアプローチではかなり新しいので、コンストラクターでもクリックイベントを作成したいと考えています。誰でもこれを行う方法を教えてもらえますか?

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

 }
4

2 に答える 2

4

これを試して:

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

また:

self.button.on('click', function () { self.element.remove(); })
于 2012-10-18T08:25:33.677 に答える
2

JS でコンストラクターを作成する方法はいくつかあります。

最も簡単で明確な方法は次のとおりです。

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

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

}

于 2012-10-18T08:33:38.523 に答える