【发布时间】:2017-07-23 00:57:54
【问题描述】:
我正在尝试使用敲除在 div 外部单击时执行一个函数。我试图通过使用带有模糊的事件绑定来做到这一点。我想我很接近了,我只需要一点帮助。
filterFromList 函数工作正常。
相关JS
self.filterFromList = function (item) {
self.selectedName(item.name);
self.location().forEach(function(place) {
if (place.name === self.selectedName()) {
place.showLocation(true);
place.marker.setVisible(true);
} else {
place.showLocation(false);
place.marker.setVisible(false);
}
});
};
self.unfilter = function (item) {
console.log("blurring");
self.location().forEach(function (place) {
place.showLocation(true);
place.marker.setVisible(true);
})
};
相关 HTML
<ul data-bind="foreach: location">
<a class="location-click" data-bind="click: $parent.filterFromList, event: { blur: $parent.unfilter }">
<li class="location-block" data-bind="visible: showLocation">
<img class="location-img" data-bind="attr: {src: imgURL}" />
<h4 data-bind="text: name"></h4>
<hr>
</li>
</a>
</ul>
【问题讨论】:
-
当您说“在 div 外部单击时”指的是什么 div?是在你的
- 周围吗?
-
我还想知道您为什么要这样做 - 除了具有过滤器角色的按钮之外,单击几乎任何地方来清除过滤器都是用户友好的。即使单击“详细信息”按钮或链接或类似的东西也会删除过滤器。只需添加一个清除过滤器按钮或在现有按钮上实现切换。
标签: javascript html knockout.js