使用OOP创建包含事件的HTML对象的更好方法

时间:2013-01-10 17:42:50

标签: javascript jquery html oop

我的网络应用程序需要能够从SQL数据库中提取信息并根据信息创建对象。这些是需要点击事件的HTML元素(以及与之相关的其他方法)。

我目前在做什么:

function init() {
    //initially creates objects based on SQL database

    //user creates a new Foo
    fooA = new Foo({id: i, otherInfo: "..."});

    $(fooA.selector).click({...});
    $(fooA.selector).draggable({...});
    //etc.

    $(fooA.selector).appendTo('#topContainer');


function Foo(data) {
    this.id = data.id;
    this.html = "";
    this.selector = "#"+this.id;

    $('<div/>',{
        "class": "Foo",
        id: this.id,
        text: 'Blah blah blah'
    })
}

更新: 是否有更好的方法来创建具有事件的HTML div,或者这是一种有效,充分的方法吗?是否需要在数组中创建javascript对象?

1 个答案:

答案 0 :(得分:1)

如果所有新元素在click上都做同样的事情可能会更容易,你可能只是从某个父元素委派click事件而不是在创建它时附加它。


例如:

$(document).on('click', '.foo', function(e){
    //do something when a .foo element is clicked on in the document
});