jquery工具提示针对不同类型的个别延迟

时间:2013-06-28 08:50:26

标签: jquery tooltip delay

我刚看了一下jquery-ui的工具提示,我还有以下代码:

$(function() {
        $( document ).tooltip({
            items: "[tooltip], [title]",
            content: function() {
                var element = $( this );
                if ( element.is( "[tooltip]" ) )
                {
                    var id = element.attr( "tooltip" );
                    return $("#tooltip_"+id)[0].innerHTML;
                }
                if ( element.is( "[title]" ) )
                {
                    return element.attr( "title" );
                }
            },
            show: {
                effect: "slideDown"
            }
        });
    });

它有效,它做到了应有的效果 如果它是带有“tooltip”属性或“title”属性的工具提示,我实现了不同方法的原因如下:
如果它是一个“工具提示”属性,那么只有一个id,页面中的某个地方是一个包含工具提示内容的div元素(它是一个包含其中内容的表格)。
但如果它是一个“标题”属性,我想要通常的行为
但是,我想为“工具提示”或“标题”属性定义的工具提示定义不同的延迟 例如。如果它是一个“工具提示”工具提示,我希望延迟200毫秒,如果它是一个“标题”工具提示,我想要500毫秒。

我不知道怎么做。
我知道,如果我在delay: 500之后添加effect: "slideDown",则所有工具提示的延迟将为500毫秒,但我不知道如何单独执行此操作。

我希望我没有用这么长的文字打扰你,你理解我的问题 提前谢谢!

1 个答案:

答案 0 :(得分:0)

一种解决方案就是两次使用.tooltip()

$(function () {
    $(document)
        .tooltip({
            items: "[tooltip]",
            content: function () {
                var $element = $(this);
                var id = $element.attr("tooltip");
                return $("#tooltip_" + id).html();
            },
            show: {
                effect: "slideDown",
                duration: 200
            }
        })
        .tooltip({
            items: "[title]",
            content: function () {
                var $element = $(this);
                return $element.attr("title");
            },
            show: {
                effect: "slideDown",
                duration: 500
            }
        });
});