jquery tipsy插件

时间:2010-02-09 07:05:34

标签: javascript jquery jquery-plugins

Tipsy jquery plugin已安装在我的应用

这是我的加载功能

 $(function() {
    tipsy();
 });

下面的代码是在js文件中

var htm = '<div id="new_div" onmouseover="tipsy(this);">' ;

function tipsy(tip)
{
    if ( '' != sumtitle )
    {
        tip.title =  tip.innerHTML;
    }
    else if(tip)
    {
        tip.title =  tip.innerHTML;
    }
    $(tip).tipsy({gravity: 'w'});
}

如何正常标题首先显示,然后是jquery提示。

4 个答案:

答案 0 :(得分:4)

这是一个已知错误,将在下一个版本中修复。现在请使用此提交中的“下载源”链接:

http://github.com/jaz303/tipsy/commit/88923af6ee0e18ac252dfc3034661674b7670a97

答案 1 :(得分:2)

这个tipsy插件似乎删除了title属性并将其值分配给名为original-title的自定义属性,以避免显示默认的浏览器工具提示。也许在你的情况下,这发生得太晚了:鼠标悬停在元素上,这启动了本机浏览器工具提示。然后,在元素上执行tipsy()并切换属性名称,但为时已晚,因为本机工具提示的超时已经开始。

您应该阻止事件的默认操作,例如:

$('#new_div').bind('mousover', function (e) {
    tipsy(this);
    e.preventDefault();
});

编辑:由于这似乎没有达到预期的效果,请在创建div后立即调用tipsy($('#new_div'))并删除mouseover处理程序。无论如何,你一直在做的事情可能有点问题:这个有意思的插件可能会使用mouseover事件,你在.tipsy( { gravity: 'w' } )事件处理程序中调用onmouseover。反复,如果你mouseout然后再次mousover。这是很多不必要的事件分配。

答案 2 :(得分:1)

你做错了。 试试这个:

$('#new_div').tipsy();

jQuery旨在使用JS代码中的选择器。请不要HTML格式的事件。

答案 3 :(得分:1)

另一种方法是,使用'original-title'属性而不是'title'属性。