JS Class并重写JQuery事件处理程序

时间:2011-07-14 14:48:14

标签: javascript jquery class object event-handling

这应该很简单,但由于理由我无法理解它不起作用 - 更重要的是 - 我无法找到正确的问题要问谷歌!

我想要做的是为JS类构建一个事件绑定器,如下所示,实际发生的事情是什么都没有,除非我直接在box对象上调用.bind()。

function Box()
{
    this.Width = 200;
    this.Height = 200;
    this.WrapperClass = "boxWrapper";
    this.TitleClass = "boxTitle";
    this.ContentClass = "boxContents";
    this.Title = "This is a box";
    this.Content = "This is some box contents";
}

Box.prototype.Html = function()
{
    var box = $('<div></div>').addClass(this.WrapperClass);
    box.append($("<div></div>").addClass(this.TitleClass).append(this.Title));
    box.append($("<div></div>").addClass(this.ContentClass).append(this.Content));
    box.width(this.Width);
    box.height(this.Height);
    return box.outerHTML();
}

Box.prototype.Bind = function(event, eventDelegate)
{
    this.bind(event, eventDelegate);
}

function clickDelegate(message)
{
    alert(message);
}

$(document.ready(function() {
    var box = $(new Box().Html());
    box.Bind('click', clickDelegate('text'));
    $('body').append(box);
}

1 个答案:

答案 0 :(得分:0)

您必须在绑定事件之前附加框。

我已从您的代码开始创建little fiddle并进行调试。

仅供参考:jQuery对象没有outerHTML方法,所以我将新创建的div嵌入到另一个中。

我对您的代码进行了一些更改,这就是我不在此处发布的原因。