touch event binding for knockout.js
jquery, knockout.js, touch
Solution
You can use knockoutjs event binding:
<li data-bind="text: $data, event: { touchend: $parent.touchEndHandler }"></li>
http://knockoutjs.com/documentation/event-binding.html
You viewmodel binding doesn't look quite right either, try this instead:
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);
Example - http://jsfiddle.net/infernalbadger/pjG8r/
Problem
I've just started learning Knockout.js and I've run into some trouble, which I need some help to resolve. Basically I want to add my touchend event to my Knockout generated list. At the moment I'm doing something like this: 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 }); ``` But I assume this is not the proper way to do it? How do I 'data-bind' my 'touchend' with Knockout (if thats is the way to do it)? Thanks in advance :)