我在大型HTML Excel网格中的每个单元格上使用以下绑定。现在我绑定到每个单元格,是否有一种方法可以在鼠标悬停超过一定延迟的情况下延迟加载它,这样每个单元格都不需要激活它?如果鼠标在单元格上持续2秒钟,则工具提示绑定激活并显示。此工具提示是引导工具提示。
ko.bindingHandlers.tooltip = {
init: function (element, valueAccessor) {
$(element).tooltip();
ko.utils.domNodeDisposal.addDisposeCallback(element, function () {
$(element).tooltip("destroy");
});
}
};
答案 0 :(得分:0)
您可以在单元格容器上添加单个事件处理程序,而不是为每个单元格添加一个事件处理程序。鉴于标记
<div class="cell-container" data-bind="tooltipContainer: true">
<div class="cell"></div>
<div class="cell"></div>
<div class="cell"></div>
</diV>
您可以使用此绑定:
ko.bindingHandlers.tooltipContainer = {
init: function (element, valueAccessor) {
$(element).on('hover', '.cell', function() {
$(this).tooltip();
});
ko.utils.domNodeDisposal.addDisposeCallback(element, function () {
$(element).tooltip("destroy");
});
}
};
如果您想在顶部添加超时,请
ko.bindingHandlers.tooltipContainer = {
init: function (element, valueAccessor) {
$(element).on('hover', '.cell', function() {
var $this = $(this),
callback = function() { $this.tooltip(); };
setTimeout(callback, 2000);
});
ko.utils.domNodeDisposal.addDisposeCallback(element, function () {
$(element).tooltip("destroy");
});
}
};
应该有用。