4

我刚刚查看了 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"
            }
        });
    });

它起作用了,它做了它应该做的事情。
如果它是具有“工具提示”属性或“标题”属性的工具提示,我实现了不同方法的原因如下:
如果它是“工具提示”属性,则只有一个 id 并且页面中的某处是 div 元素包含工具提示的内容(它是一个包含东西的表格)。
但如果它是“标题”属性,我想要通常的行为。

但是,我想为“工具提示”或“标题”属性定义的工具提示定义不同的延迟。
例如,如果它是“工具提示”工具提示,我想要 200 毫秒的延迟,如果它是“标题”工具提示,我想要 500 毫秒。

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

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

4

1 回答 1

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
            }
        });
});
于 2013-07-06T14:58:32.243 回答