visible:
基本的には、カーソルを合わせたdivでのみ起動したいのですが、どちらにカーソルを合わせても、すべてに適用されます。
私はvisible:
内側のforeach:
ループにバインドしているので、それは理にかなっていると思います。それで、それはそれらすべてに適用されます。KnockoutJSの回避策はありますか、それとも$jQuery.hover()
代わりにそれを機能させるために使用する必要がありますか?
HTML:
<div>
<div data-bind="foreach: hostGroups">
<div data-bind="css: { style: true }, event: { mouseover: $root.showDeleteLink, mouseout: $root.hideDeleteLink }">
<span data-bind="text: hostName"></span>
<span class="delete-link" data-bind="visible: $root.deleteLinkVisible">this is a delete link</span>
</div>
</div>
</div>
JavaScript:
var data = [
{ "hostName": "server1" },
{ "hostName": "server2" },
{ "hostName": "server3" }
];
var viewModel = {
hostGroups: ko.observableArray(data),
deleteLinkVisible: ko.observable(false),
showDeleteLink: function() {
viewModel.deleteLinkVisible(true);
},
hideDeleteLink: function() {
viewModel.deleteLinkVisible(false);
}
};
ko.applyBindings(viewModel);