为什么这个元素未定义时,我尝试使用jQuery
选择元素绑定的数据:选择元素属性通过淘汰赛
<ul data-bind="attr: {id: panelId}"></ul>
panelId
被定义为Knockoutjs
视图模型属性:
var VM = function() {
var self = this,
date = new Date();
self.panelId = "panel-" + date.getTime();
$("#"+self.panelId).doSomthing(); // element is undefined
}
在Chrome开发人员工具中检查页面,我可以看到id被指定为像这样
<ul data-bind ... id="panel-1368039734501"</ul>
该panelId
属性不一定是observable
。但我试图让它可观察,但结果相同。
有人吗?
你在哪里叫'ko.applyBindings'?因为你应该在**之前这样做**你尝试调用'$(“#”+ self.panelId).doSomthing()'... – nemesv 2013-05-08 19:13:06
'ko.applyBindings(new VM())'在ready ready handler :'$(function(){ko.applyBindings(new VM());})'。 – Javid 2013-05-08 19:21:51
如果您试图对元素执行操作,听起来像是自定义绑定处理程序的完美候选人。 – Posthuma 2013-05-08 19:27:36