繁体   English   中英

鼠标悬停时的延迟加载绑定

[英]Lazy Loading Binding On Mouse Hover

我在大型HTML Excel(如网格)中的每个单元格上使用以下绑定。 现在我绑定到每个单元格,有没有办法通过将鼠标悬停在鼠标悬停某个特定的延迟上来做到这一点,因此每个单元格都不需要激活它? 如果鼠标悬停在该单元格上2秒钟,则会激活工具提示绑定并显示。 该工具提示是引导工具提示。

 ko.bindingHandlers.tooltip = {
        init: function (element, valueAccessor) {
            $(element).tooltip();

            ko.utils.domNodeDisposal.addDisposeCallback(element, function () {
                $(element).tooltip("destroy");
            });
        }
    };

可以为每个单元格添加一个事件处理程序,而不是为每个单元格添加一个事件处理程序。 给定标记

<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");
        });
    }
};

应该管用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM