jquery UI工具提示何时计为初始化?

时间:2014-02-24 17:45:35

标签: javascript jquery jquery-ui jquery-ui-tooltip

我使用的是自定义的jquery UI工具提示,效果很好。现在我有一个特定的元素,我希望在工具提示显示之前有一个延迟。我使用show:{delay:1000}作为选项,也可以。我在document.ready函数中定义工具提示。

问题是,我无法通过setter-method找到设置delay-option的位置。每当我尝试这样做时,我都会收到错误“在初始化之前无法在工具提示中使用该方法”。我目前的解决方法是使用选项集重新定义这个元素的整个工具提示,这很丑陋。在什么时候我可以在已定义的工具提示上实际使用setter方法?

编辑以添加示例代码:

$(document).ready(function () {

    $('#selector1').tooltip({
        tooltipClass: 'myTooltip',
        content: function () {
           return genCustomContent();
        }
    });

    $('#selector1 #subElement').tooltip({
        tooltipClass: 'myTooltip',
        show: {delay : 1000},
        content: function () {
           return genCustomContent();
        }
    });
}

以上是我当前的解决方案代码的样子。我没有明确地将工具提示称为其他任何地方,因为我认为没有必要这样做 - 但是。现在我想要的选项的setter应该是这样的:

$( "#selector1 #subElement" ).tooltip( "option", "show", {delay : 1000});

我试过在$(document).ready()函数中的工具提示声明之后直接调用它,显然无济于事。我也尝试在其余的代码中间调用它,这在$(document).ready()运行之后执行得很好。我得到了错误信息。

1 个答案:

答案 0 :(得分:0)

我无法推断真正的问题是什么。但我认为它与您选择工具提示元素进行初始化的方式有关。

HTML

<button title="tooltip">normal</button>
<button id="delay" title="this has 1 s delay">delay button</button>

SCRIPT

  $("[title]").tooltip({
         position: {
             my: "left+15 center",
             at: "right center"
         },
         show: false,
         hide: false
     });
     $("#delay").tooltip("option", "show", {
         delay: 1000
     });

请参阅此demo