- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
如何绑定(bind)页面加载后创建的新元素?
我有这样的东西
system = function()
{
this.hello = function()
{
alert("hello");
}
this.makeUI = function(container)
{
div = document.createElement("div");
div.innerHTML = "<button data-bind='click: hello'>Click</button>";
}
}
ko.applyBindings(new system);
如果我试试这个
this.makeUI = function(container)
{
div = document.createElement("div");
div.innerHTML = "<button data-bind='click: hello'>Click</button>";
ko.applyBindings(new system,div);
}
最佳答案
knockout 的目标是只对一组 dom 元素调用一次 knockout。因此,如果您对整个文档重复调用 applyBindings,您将遇到多个绑定(bind)的问题。
在某些情况下,多次调用 applyBindings 是合理的,这是在第一次绑定(bind)时不在 dom 中的部分 View 的情况下,因此未绑定(bind)。您可以通过有选择地将 applyBindings 的范围限定到该 dom 元素来绑定(bind)它们。
这是您尝试实现的目标的示例。您的问题是您没有插入您创建的节点。
http://jsfiddle.net/madcapnmckay/qSqJv/
对于这个特定示例,我不推荐这种方法,有更好的方法。
如果您想动态创建 dom 元素并让它们通过 knockout 绑定(bind),最常见的方法是使用内置的模板功能,该功能负责插入元素并绑定(bind)它找到的任何数据绑定(bind)属性。
所以如果你想创建一些你可以做的按钮
this.makeUI = function(container)
{
self.buttons.push({
text: "button " + self.buttons().length,
handler: this.hello
});
}
这是一个 fiddle 。
http://jsfiddle.net/madcapnmckay/ACjvs/
希望这对您有所帮助。
关于javascript - 如何使用 knockout 绑定(bind)新元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10051070/
我正在用 Java 编写代码,并且使用 Vaadin 8 扩展。 我有一个 Vaadin 组合盒,效果很好。但我不仅想从组合框中选择项目,还想选择书面输入。这意味着我想使用组合框作为下拉菜单以及文本编
我正在尝试将 AJAX 添加到 JQuery ListView 中并呈黄色闪烁,但我似乎无法使其正常工作。谁能指出我正确的方向? http://jsfiddle.net/zFybm/ 最佳答案 根据
我有这个样式表: .pixel{ position: absolute; height: 10px; width: 10px; background-color: #f
这是我用来将新行推送到容器的一行代码: this.$el.append(new ItemView(item).render().el); 其中item是Backbone.js model,render
我正在尝试在 anguar.js 中制作一些测试应用程序,但遇到了问题。我的 js 文件包含: live = angular.module('live',[]); live.controller('p
如何绑定(bind)页面加载后创建的新元素? 我有这样的东西 system = function() { this.hello = function() { alert
html5 新元素(页眉、导航、页脚等)在 IE 中不工作 最佳答案 您需要包含 HTML5 shiv 脚本以允许在旧版 IE 浏览器中设置 HTML5 元素的样式:http://code.googl
我是一名优秀的程序员,十分优秀!