我刚开始学习Knockout.js而且遇到了一些麻烦,我需要一些帮助才能解决。
基本上我想将我的touchend事件添加到我的Knockout生成列表中。目前我正在做这样的事情:
HTML:
<ul data-bind="foreach: names">
<li data-bind="text: $data"></li>
</ul>
JS:
var names = ['Tom','Jennifer','Jack','Poul'];
ko.observableArray(names);
ko.applyBindings(names);
$('li').on('touchend, function(){
... do something
});
但我认为这不是正确的方法吗?如何使用Knockout对我的'touchend'进行数据绑定(如果这样做的话)?
提前致谢:)
答案 0 :(得分:8)
您可以使用knockoutjs事件绑定:
<li data-bind="text: $data, event: { touchend: $parent.touchEndHandler }"></li>
http://knockoutjs.com/documentation/event-binding.html
你的viewmodel绑定看起来也不正确,试试这个:
function NamesViewModel() {
var self = this;
self.names = ko.observableArray(['Tom','Jennifer','Jack','Poul']);
self.touchEndHandler = function(data, event) {
var element = $(event.target);
alert("TouchEnd Triggered");
// can access self here which is the viewmodel
};
}
var viewModel = new NamesViewModel();
ko.applyBindings(viewModel);