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