Я пытаюсь заставить что-то произойти с элементом, когда его нажимают на использование knockout.js и jquery. Я могу изменить CSS на другой элемент, как фон тела с этим кодом, но не тогда, когда я пытаюсь использовать this.css(something)
или $(this).css(something)
Функция data-bind = "click" не работает с "this"?
<h4>Places</h4>
<ul data-bind="foreach: city">
<li data-bind="click: function(){$(this).css('color','yellow')}"><span data-bind="text: city"></span>, <span data-bind="text: state"></span>
</li>
</ul>
function AppViewModel() {
var self = this;
self.city = ko.observableArray([
{ city: 'Richmond', state: 'VA' },
{ city: 'Dallas', state: 'TX' },
{ city: 'Los Angeles', state: 'CA' }
]);
}
ko.applyBindings(new AppViewModel());
http://codepen.io/ntibbs/pen/PPdEVJ
Не было бы больше смысла для объектов в массиве, чтобы иметь наблюдаемое свойство, а затем используйте привязку 'style' и используйте функцию click, чтобы установить это свойство. Это будет больше MVVM. Как и сейчас, «это» не то, что вы думаете. –
im довольно новичок в MVVM knockoutjs. Моя конечная цель будет заключаться в том, чтобы щелкнуть элемент LI и увеличить масштаб на маркере на картах Google. Возможно ли это сделать с тем, что вы только что упоминали? если это так плохо смотреть на это. –
Вы просто пытаетесь выделить «выбранный элемент»? Для этого используйте привязку 'css'. – CrimsonChris