我的网络应用程序需要能够从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对象?
答案 0 :(得分:1)
如果所有新元素在click上都做同样的事情可能会更容易,你可能只是从某个父元素委派click事件而不是在创建它时附加它。
例如:
$(document).on('click', '.foo', function(e){
//do something when a .foo element is clicked on in the document
});