I have not been able to find a solution for this.
I'm trying to create a custom bindingHandler for a click event on an html element div tag.
// custom bindingHandler and observable
<div data-bind="OnClickEvent: HasBeenClicked"></div>
// to show observable's true/false value
<span data-bind="text: 'Observable: ' + HasBeenClicked()"></span>
This bindingHandler does what it is suppose to, if you click on the div the text will change. However, the observable says if false.
ko.bindingHandlers.OnClickEvent = {
update: function (element, valueAccessor) {
$(element).text('Click Here: false');
var observable = ko.utils.unwrapObservable(valueAccessor());
$(element).on('click', function () {
observable = !observable;
if (observable) {
$(element).text('Click Here: true');
} else {
$(element).text('Click Here: false');
}
});
}
}
function ViewModel() {
var self = this;
self.HasBeenClicked = ko.observable(false);
}
ko.applyBindings(new ViewModel());
How do I set the observable HasBeenClicked to switch between true/false on every click, like the text?