单击按钮时的JqueryUI工具提示而不是悬停以显示在其他位置

Swa*_*e27 16 html jquery jquery-ui jquery-plugins

我正在使用JQueryUI工具提示向用户显示一些动态消息.基本上我想在用户单击按钮时在输入字段的顶部显示工具提示.

我编写它的方式只有当悬停在按钮顶部时才有效,而在JQueryUI示例中,实现此方案没有任何帮助.我如何区别于悬停效果并使其与按钮的单击事件一起使用?我怎样才能做到这一点?

我使用的是jquery-ui-1.9.0.custom.jsjquery-1.8.2.js此.

HTML代码: 我想在此输入框的顶部显示消息

<input id="myInput" type="text" name="myInput" value="0" size="7" />
Run Code Online (Sandbox Code Playgroud)

我单击按钮以弹出工具提示的按钮

<input id="myBtn" type="submit" name="myBtn" value="myBtn" title="this is not used" class="myBtn" />
Run Code Online (Sandbox Code Playgroud)

JQuery代码

$(document).ready(function() {
    $(".myBtn").tooltip({
               content: function () {
                  return '<span id="msg">Message</span>';
               },
               position: {
                  my: "center bottom",
                  at: "center top"
               }
            });
});
Run Code Online (Sandbox Code Playgroud)

Ell*_*ott 18

最简单的方法是删除title属性myBtn并将工具提示移动到另一个元素上.例如:

<a id="myTooltip" title="Message"></a>
Run Code Online (Sandbox Code Playgroud)

然后你可以这样做:

$('#myTooltip').tooltip({
    //use 'of' to link the tooltip to your specified input
    position: { of: '#myInput', my: 'left center', at: 'left center' }
});

$('#myBtn').click(function () {
    $('#myTooltip').tooltip('open');
});
Run Code Online (Sandbox Code Playgroud)

同样,您可以关闭工具提示

$('#myTooltip').tooltip('close');
Run Code Online (Sandbox Code Playgroud)

要在打开后自动关闭工具提示,只需调用事件close内的方法open:

$('#myTooltip').tooltip({
    open: function (e) {
        setTimeout(function () {
            $(e.target).tooltip('close');
        }, 1000);
    }
});
Run Code Online (Sandbox Code Playgroud)

使用e.target(因为thisopen事件内部不起作用)并setTimeout()设置工具提示将关闭的时间限制.