javascript - 从一个对象悬停到另一个对象,第二个 DOM 对象不会立即消失

标签 javascript jquery html css

目标:对象用户将鼠标悬停在上面以调出辅助 DOM
工具提示:修复了 DOM 对象位于目标下方约 10-15 像素的位置

我制作了一个 jquery "tooltip"插件。此插件允许用户将鼠标悬停在 DOM 对象上,并且将显示“工具提示”。我希望用户能够在鼠标离开目标的那一秒将他们的鼠标从目标移动到工具提示而不会消失

我试过这个:

 var hoverTimeout;

                data.target.hover(function(){
                    $this.tooltip('show');
                }, function(){

                    hoverTimeout = setTimeout(function(){
                        $this.tooltip('hide');
                        console.log('hey');
                    }, 1000);

                });

                data.tooltip.hover(function(){
                    data.tooltip('show');
                    clearTimeout(hoverTimeout);
                }, function(){
                    data.tooltip('hide');
                });

但是,这似乎阻止了工具提示的隐藏。我想这样做的原因是可以在工具提示中使用表单、复制文本等。

我希望 setTimeout 和 clearTimeout 之类的东西可以工作,因为我不想使用 hoverintent 插件。

提前致谢!

最佳答案

你应该两种方式使用定时器:

var hoverTimeout;

data.target.hover(function()
{
    hoverTimeout && clearTimeout(hoverTimeout);
    $(this).tooltip('show');
},
function()
{
    var $this = $(this);
    hoverTimeout = setTimeout(function(){
        $this.tooltip('hide');
    }, 1000);

});

data.tooltip.hover(function()
{
    hoverTimeout && clearTimeout(hoverTimeout);
},
function()
{
    var $this = $(this);
    hoverTimeout = setTimeout(function(){
        $this.tooltip('hide');
    }, 1000);
});

你可能应该 combine the two ,因为无论如何你都在对它们做完全相同的事情:

var hoverTimeout;

data.target.add( data.tooltip ).hover(function()
{
    hoverTimeout && clearTimeout(hoverTimeout);
    $(this).tooltip('show');
},
function()
{
    var $this = $(this);
    hoverTimeout = setTimeout(function(){
        $this.tooltip('hide');
    }, 1000);

});

关于javascript - 从一个对象悬停到另一个对象,第二个 DOM 对象不会立即消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9705775/

相关文章:

javascript - 仅在 Firefox 中出现 flashObject 'is not a function' 错误

javascript - 使用 jquery 在更改事件上重置文本框值

javascript - 当页面加载覆盖时显示所有隐藏的元素?

javascript - jquery 文件内部或外部的函数就绪

php - 将选定的日期值从日期选择器传递到 php

javascript - 基于 UL/LI 的长 CSS 菜单的解决方案

javascript - 如何在页面未完全加载时显示正在加载的 gif

javascript - vis.js Graph3d 条形图 - 可能的错误?

php - 单击按钮时在另一个页面上显示值,在PHP中,值存储在数据库中

javascript - 具有重叠透明边框的可排序图像,处理不工作