繁体   English   中英

jQuery if else语句的工具提示

[英]Jquery if else statment for tooltip

将鼠标悬停在链接上时,会显示一个工具提示。 我希望如果您将鼠标悬停在工具提示上(因为其中包含链接等),或者如果您将鼠标移离链接,则工具提示将消失。 我尝试了几件事,但还没有弄清楚。 这是我第一次用jQuery构建任何重要内容。

下面的内容是.hover()'handlerOut'事件中的内容。

if($(this.a).mouseout())
{
    if ($('.tip_container').hover()) {
        $('.tip_container').css('display', 'block');
        $('.tip_container').mouseleave(function() {
        $('.tip_container').remove(0);
    });
} else if ($('.tip_container').hover() == false && $(this.a).mouseoff() == true)
    {
        $('.tip_container').remove(0);
    }
}
>>"this.a" refers to the link<<

借助此操作以及我尝试过的其他操作,除非将鼠标悬停在工具提示上,否则工具提示不会消失。 我也试过

else if (!$('.tip_container').hover() && $(this.a).mouseoff()) {

是否可以有多个条件?

该代码的主要思想是,如果您将鼠标悬停在“ this.a”链接上,则将通过以下方式删除工具提示:

$('.tip_container').remove(0);

但是如果您将鼠标悬停在工具提示上,除非将其从工具提示上移开,否则它不会被删除。

您有小提琴或其他任何要证明的东西吗?

也许像

$(this, '.tip_container').hover(function () {
        $('.tip_container').show();
  }, function () {
        $('.tip_container').hide();
  }
);

基本上将链接和工具提示元素都绑定到悬停方法,该方法在mouseenter / mouseleave上隐藏/显示工具提示元素。 Pointy发表在评论中的链接是一个不错的起点

经过一夜安眠后,忽略了片刻,我想出了一个解决方案。 这就是我在悬停handlerOut事件中添加的内容。

 var timer;

 timer = setTimeout(function() {
           $('.tip_container').remove();
       }, 500);                     
           $( '.tip_container' ).hover(
       function() {
           clearTimeout(timer);
           $('.tip_container').css('display', 'block');
       }, function() {
           $('.tip_container').remove();
       }
    );

在鼠标悬停在链接上之前,它将等待执行删除,并且如果鼠标悬停在工具提示上,它将清除计时器并将工具提示设置为阻止以保持其显示,然后在该鼠标悬停在工具提示上时,它将被删除。

暂无
暂无

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

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