<ul>
<!-- ko foreach: spatiaQueryList -->
<li data-bind="text: $data, css: {spatial_active: spatiaQueryIndex() === $index()}, click:spatiaLiClick.bind($data, $index())"></li>
<!-- /ko -->
</ul>
var viewModel = function (json) {
// 当前点击的列表索引
this.spatiaQueryIndex = ko.observable(-1);
// 列表
this.spatiaQueryList = ko.observableArray(json);
// 列表点击事件
this.spatiaLiClick = function (index, data) {
that.spatiaQueryIndex(index);
}
}
ko.applyBindings(new viewModel(json), document.getElementById(this.id));
// 这样是访问不到spatiaQueryIndex, spatiaLiClick的,改成上下文访问就可以, 前面加上$parent
<ul>
<!-- ko foreach: spatiaQueryList -->
<li data-bind="text: $data, css: {spatial_active: $parent.spatiaQueryIndex() === $index()}, click: $parent.spatiaLiClick.bind($data, $index())"></li>
<!-- /ko -->
</ul>