KnockoutJS数据绑定:从javascript点击中点击
KnockoutJS data-bind: click from javascript click
假设我们有一个这样的表
<table>
<tbody data-bind="foreach: orderItems">
<tr class='datarow'>
<td data-bind="text: whatever"></td>
<td><a id='anchor' href='#' data-bind='click: $root.save' onclick='alert("a");'>Text</a></td>
</tr>
</tbody>
</table>
所以当我做时
document.getElementsById('anchor').click();
警报会触发,但$root.save不会。有什么想法吗?
Try This
<script type="text/javascript">
var viewModel = {
Save: function() {
alret("Hello");
}
};
ko.applyBindings(new MyViewModel());
</script>
<table>
<tbody data-bind="foreach: orderItems">
<tr class='datarow'>
<td data-bind="text: whatever"></td>
<td><a id='anchor' href='#' data-bind='click: $root.save' onclick='alert("a");'>Text</a></td>
</tr>
</tbody>
</table>
我看到代码有两个问题:
- getElementsById-你确定这个方法存在吗
每个ID在页面上只能存在一次。当你想通过元素的ID找到元素时,你可以调用getElementById(单数(,它会返回一个元素。因为只有一个元素应该具有给定的ID,所以没有getElementsById(复数(方法。
foreach绑定与硬编码的"anchor"id相结合将导致多个id为anchor的元素。这是一个禁忌。也许使用一个类"anchor"而不是一个id"anchor"。
<a class='anchor' href='#' data-bind='click: $root.save' onclick='alert("a");'>Text</a>
所以我的猜测是getElementsById没有返回任何可点击的内容。
- 单击((
即使您能够从getElementsById中取回一个元素,这些元素上也没有click((方法。
作为替代方案,您可以使用jQuery来获取元素,使用jQuery对象可以调用click((方法。或者,您可以获取从getElementById返回的元素,将其封装在jQuery中,然后调用click((。
$('.anchor').click();
以下是一个工作示例:http://jsfiddle.net/tlarson/t4yZL/1/
<table>
<tbody data-bind="foreach: orderItems">
<tr class='datarow'>
<td data-bind="text: whatever"></td>
<td><a id='anchor' href='#' onclick='alert("a"); viewModel.save(ko.dataFor(this));'>Text</a></td>
</tr>
</tbody>
</table>
- 假设您将viewModel存储在其他地方
- ko.dataFor(元素(-返回可用于绑定元素的数据
你可以看看这个链接
相关文章:
- JavaScript HTMLElement 属性上的数据绑定 在 Polymer 中
- 视窗 8/Metro UI 数据绑定 JavaScript
- 纯 Javascript 双向数据绑定
- javascript客户端中的服务器端数据绑定
- href javascript 链接中的数据绑定值
- 如何在 javascript src 字符串中插入 ASP.NET 数据绑定器
- 数据绑定到可使用 javascript 在地铁风格的应用程序中观察到
- 如何将数据绑定值分配给 javascript 变量
- JavaScript:函数没有定义?- 数据绑定
- Javascript 对象数据绑定与 Vue
- 我得到了一个JSON/Javascript对象,因为我可以在控制台中看到它,但我如何让它序列化并使我的数据绑定到我的Ui
- KnockoutJS的多个数据绑定-值和javascript函数
- javascript不会将数据绑定到HTMLSelect元素
- 实时数据绑定JavaScript
- Gridview模板Javascript数据绑定
- Javascript 2采用数据绑定,而不是框架
- KnockoutJS数据绑定:从javascript点击中点击
- 使用javascript动态应用数据绑定
- 我如何枚举一个javascript对象的属性使用数据绑定Knockout.js
- 聚合物自定义元素javascript数据绑定错误与firebase