【问题标题】:JqueryUI tooltip on button click instead of hover to appear elsewhere按钮单击而不是悬停时出现在其他地方的 JqueryUI 工具提示
【发布时间】:2012-10-16 10:29:07
【问题描述】:

我正在使用 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" />

我点击按钮以弹出工具提示

<input id="myBtn" type="submit" name="myBtn" value="myBtn" title="this is not used" class="myBtn" />

JQuery 代码

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

【问题讨论】:

    标签: jquery html jquery-ui jquery-plugins


    【解决方案1】:

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

    <a id="myTooltip" title="Message"></a>
    

    那么你可以这样做:

    $('#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');
    });
    

    同样你可以关闭工具提示

    $('#myTooltip').tooltip('close');
    

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

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

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

    【讨论】:

    • 我在另一个用户行为中添加了关闭事件,它可以工作。感谢@Elliott 的帮助
    • 如果我想在以编程方式打开工具提示后自动关闭它怎么办?
    • 谢谢@Elliot,你的解释帮助了我:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-24
    • 1970-01-01
    • 1970-01-01
    • 2020-12-03
    • 2016-10-16
    • 1970-01-01
    • 2018-12-08
    相关资源
    最近更新 更多