我遇到将onclick事件绑定到ul列表的问题。这是我的HTML:
<ul id="burgerist" data-bind="foreach: burgerList.sort(function (l, r) { return l.name() > r.name() ? 1 : -1 }), click: showmap">
<li data-bind=" text: name"></li>
</ul>
我遇到的问题是在showmap函数上。我正在尝试在警告框中返回该名称:
var ViewModel = function() {
var self = this;
this.burgerList = ko.observableArray([]);
initialBurgerJoints.forEach(function(burgerItem){
self.burgerList.push( new BurgerJoint(burgerItem) );
addmarker(burgerItem.lat, burgerItem.long, burgerItem.name, burgerItem.comments);
});
self.showmap = function(data) {
alert(this.name);
};
}
有人能告诉我我做错了吗?
答案 0 :(得分:1)
点击绑定需要在列表中的每个项目上,而不是在列表本身上。该函数将被传递给当前上下文,在这种情况下,它将是burgerList中的汉堡。
<ul data-bind="foreach: burgerList.sort(function (l, r) { return l.name() > r.name() ? 1 : -1 })">
<li data-bind="text: name, click: $component.showmap"></li>
</ul>
this.showmap = function(burger) {
alert(burger.name());
};