【发布时间】:2015-12-21 10:05:51
【问题描述】:
所以我有几个嵌套的剔除组件:
<component1>
<component2>
....
</component2>
</component1>
component1 是我自己编写的组件,但 component2 是第三方代码,我不应该更改它。问题来了:
在$(document).ready() 中,为了简单起见,我使用jquery $('button').click(...) 将点击事件处理程序分配给所有按钮。结果就是,只有组件 1 和组件 2 外的按钮获得处理程序,组件 2 内的按钮都没有处理程序(当我单击它们时没有任何反应)。
请注意,component2 依赖(消耗)来自某些 ajax 调用的数据,因此这可能会延迟其加载。因为 ajax 是异步的,所以 $(document).ready() 可能在 ajax 完成之前运行,因此,$('button').click(...) 没有捕获组件内部的按钮,因为它们还没有被渲染。
其他问题: component1 的 viewmodel1 在 component2 中时似乎总是为空。上下文是正确的;它只是空的(例如:viewmodel1的数组在component2内部为空,在component2之外不为空。
如何让component2里面的所有按钮都得到handler?
【问题讨论】:
标签: javascript jquery ajax knockout.js