这似乎可以作为http://www.knockoutjs.com的家伙似乎这样做。我还没有能够使他们的代码库有足够的感觉来获得类似的模式。如何将事件听者附加到一个对象JS
切实我有一个基于jQuery的选项卡上的UI一个MVVM风格的应用程序。每个选项卡都由一个视图模型表示,我希望能够根据模型中的更改验证并触发事件。
我创建一个类似的页面加载以下我的数据的表示:
$(document).ready(function(){
thisTab = new ThisTab();
});
function ThisTab(){
Load: {Load from my model}
Save: {Save/Persist model to the db (via web service call)}
Validate: {
this.Item1 = function(){Validate item 1, do work, refresh fields, whatever.}
}
}
模型本身是一个复杂的全球性目标,并转移到DOM(输入等)即时更新的对象。对其中一些属性的更改应调用其关联的验证项目thisTab.Validate.Item1
。我没有提出修改事件的问题。如果我将该事件监听器绑定到一个随机DOM元素,我可以调用我的例程而不会出现问题,并且一切都很好。但是,将事件附加到非相关的DOM对象看起来很奇怪。
所以问题是:我该怎么做类似thisTab.addEventListner("someEvent")
或$(thisTab).bind("someEvent")
,其中thisTab不是DOM元素,而是本地对象。试图做到这一点,我总是会得到一个错误,“这种方法不被支持”。
由于该事件在DOM中不确实的泡沫就只能捕捉触发本身的事件。我需要它来监听另一个对象(或潜在的DOM)的变化。今天的某个时候,我会试着准备一个小提琴。 – iivel 2011-03-17 13:35:36