【发布时间】:2013-05-19 20:45:43
【问题描述】:
例子:
我想创建一个多窗口 webapp。每个窗口都是一个 jQuery 对象(附有一个 DOM 元素),但它也应该有特定的属性和方法(例如close() 或minimize())。看来,我应该创建一个类MyWindow,其属性DOMElement 将包含jQuery 对象。
但是如何将 DOM 事件绑定到 MyWindow 对象?
我可以做类似MyWindow.DOMElement.on('click', function(){...} 的事情。但是DOMElement 不知道它附加到哪个MyWindow,并且如果需要,将无法操纵它的属性。例如,它不能调用它的MyWindow 的close() 方法。
我目前看到了两种解决这个问题的方法。
首先。使用单个属性myWindow 扩展MyWindow.DOMElement 属性中的jQuery 对象,该属性将指向对象的父对象MyWindow 对象。
第二个。 使用MyWindow 的属性扩展jQuery 对象,并使其成为instanceof MyWindow(也许是通过寄生继承?)。这样,事件处理程序将可以通过使用this 访问MyWindow 的所有属性和方法。
这两种方式都显得有些奇怪。
将 DOM 对象分配给 Javascript 对象以进行事件绑定的首选方法是什么?
【问题讨论】:
标签: javascript jquery dom javascript-events