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 :)

Original source

Related problems