JQuery Tooltip - reverseing tooltip()。off(mouseover mouseleave)

时间:2014-10-14 19:51:19

标签: javascript jquery-tooltip

基本上,我试图创建一个显示鼠标悬停工具提示的表单。单击其中一个字段后,我想禁用光标以触发其他工具提示。一旦用户点击文本框外部,我希望鼠标恢复触发工具提示。

我的问题 - 我已经完成了所有工作,但我无法重新开启鼠标监听器。代码如下:

$(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/

谢谢!

2 个答案:

答案 0 :(得分:0)

我将选择器更改为"这个"并改变了#34; off"去除"删除"所以它看起来像这样:

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

这是更新的jsFiddle

答案 1 :(得分:0)

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/