JQuery Tooltip - reversing tooltip().off(mouseover mouseleav

JQuery Tooltip - reversing tooltip().off(mouseover mouseleave)

本文关键字:off mouseover mouseleav tooltip Tooltip reversing JQuery      更新时间:2023-09-26

因此,基本上,我正在尝试创建一个在mouseover上显示工具提示的表单。单击其中一个字段后,我想禁止光标触发其他工具提示。一旦用户在文本框外单击,我希望鼠标继续触发工具提示。

我的问题是,除了无法重新打开鼠标侦听器之外,我的一切都正常工作。代码如下:

$(function () {
infoTips();
});
function infoTips(){
$("input:text").tooltip({
    content : function(){
        return $(this).attr("title");
    },
    position : { 
        my : "left top",
        at : "right top", 
        of : ".tip"     
    }

}).on("focusin", function () {
    $("*").tooltip().off("mouseover mouseout mouseleave");                
}).on("focusout", function () {
   //This line doesn't work -
  $("*").tooltip().on("mouseover mouseout mouseleave");
  //
});
} 

http://jsfiddle.net/kjhansen/WmRuN/480/

谢谢!

jQuery在关闭处理程序时不会将它们保存在内存中。

对于您的情况,我相信您可以启用/禁用jQuery工具提示。

编辑:已更新以排除当前输入。

function infoTips(){
var $inputsWithTooltips = $("input:text");
$inputsWithTooltips.tooltip({
    content : function(){
        return $(this).attr("title");
    },
    position : { 
        my : "left top",
        at : "right top", 
        of : ".tip"     
    }

}).on("focusin", function () {
    $inputsWithTooltips.not(this).tooltip("disable");                
}).on("focusout", function () {
    $inputsWithTooltips.not(this).tooltip("enable");      
});
} 

编辑:jsfiddle:http://jsfiddle.net/WmRuN/485/

我把选择器改为"this",把"off"改为"remove",所以看起来像这样:

}).on("focusin", function () {
      $(this).tooltip().remove("mouseover mouseout mouseleave");
    }).on("focusout", function () {
      $(this).tooltip().on("mouseover mouseout mouseleave");
    });

这是一个更新的jsFiddle