【发布时间】:2013-01-10 17:42:49
【问题描述】:
我的网络应用程序需要能够从 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对象需要在数组中创建吗?
【问题讨论】:
-
我不确定问题是什么。
-
也许这是那些过于模糊的问题之一。如果是这样,我会把它拿下来。我是自学成才的,我试图弄清楚是否有已知的方法可以动态地创建带有事件的 html 对象,因为必须已经创建了 div 才能添加事件。这就是我想出的。
-
你使用的是jQuery,所以答案是肯定的;这是图书馆的基本功能。
-
听起来您实际上是在问一个关于将事件附加到与这些对象关联的 DOM 元素的问题,而不是真正创建对象本身的问题。话虽如此,听起来您在询问事件委托。我会使用 jQuery 的内置功能(或者看看我对这个关于委托的问题的回答:stackoverflow.com/questions/14258787/…)
-
这可能行得通。我需要用户能够创建新对象,并且我需要这些对象具有 HTML GUI 并具有事件和 jQuery 交互,例如 draggable()。查看更新,了解我认为基于其他 cmets 可能会更好的工作
标签: javascript jquery html oop