作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我要做的是添加另一个条件,以便在用户将鼠标悬停-6ren">
我有以下内容:
<input type="checkbox" data-bind="visible: selectedItemsCount() > 0, attr: { value: itemId()}, checked: $parent.selectedFolderIds" />
<input type="checkbox" data-bind="visible: selectedItemsCount() > 0 || isHovering(), attr: { value: itemId()}, checked: $parent.selectedFolderIds" />
最佳答案
通常,避免将逻辑直接放在 HTML 内的 Knockout 绑定(bind)中是一种很好的做法。不是世界末日,但它可以很快导致一条困惑的道路。
如果可能,请使用自定义绑定(bind)为您的可见性提供所需的 UI 行为。将该逻辑放在自定义绑定(bind)中很有用,因为它将实现细节与 View 分开。您稍后可能会决定,不是更改可见性,而是添加/删除一些 CSS 来控制外观,或者您可能想要添加一些动画。
这是一个非常简单的绑定(bind),用于设置悬停时的可见性:
ko.bindingHandlers.hoverTargetId = {};
ko.bindingHandlers.hoverVisible = {
init: function (element, valueAccessor, allBindingsAccessor) {
function showOrHideElement(show) {
var canShow = ko.utils.unwrapObservable(valueAccessor());
$(element).toggle(show && canShow);
}
var hideElement = showOrHideElement.bind(null, false);
var showElement = showOrHideElement.bind(null, true);
var $hoverTarget = $("#" + ko.utils.unwrapObservable(allBindingsAccessor().hoverTargetId));
ko.utils.registerEventHandler($hoverTarget, "mouseover", showElement);
ko.utils.registerEventHandler($hoverTarget, "mouseout", hideElement);
hideElement();
}
};
<div><label id='hoverTarget'>Hover to see the details</label></div>
<div data-bind="hoverVisible: hasItems, hoverTargetId: 'hoverTarget'">Here's the details</div>
hasItems
. checked
binding用于绑定(bind) input type='checkbox' />
的值关于knockout.js - 用悬停击倒可见绑定(bind)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16309336/
我是一名优秀的程序员,十分优秀!