jquery tipsy插件。 tipsy不是一个功能

时间:2011-04-18 17:37:12

标签: jquery jquery-ui jquery-plugins

我正在尝试使用tipsy插件在我的jsp页面上显示工具提示。 我已经将脚本和css以及图像文件复制到我的脚本,css和图像目录中,并将它们包含在我的页面的头部。

<script type="text/javascript" src="../scripts/jquery-1.4.2.min.js"></script>
        <script type="text/javascript" src="../scripts/jquery.tipsy.js"></script>
        <link rel="stylesheet" href="../_templates/css/tipsy.css"   type="text/css" />

我添加了测试工具提示

<a id='example-1' href='#' title='Hello World'>Hover over me</a>

我试图在window.load和document ready中为我添加tipsy函数。

$(window).load(function() {
    alert("window load occurred!");
    $('#example-1').tipsy();
});

无论哪种方式,Firefox,使用firebug进行调试,我收到错误:

$("#example-1").tipsy is not a function

我可以使用firebug中的“脚本”选项卡来查看jquery.tipsy.js。所以我知道正在加载文件。 IE报告错误:'对象不支持此属性或方法'。

我已尝试使用从网站下载的0.1.7版本的tipsy。

  

http://onehackoranother.com/projects/jquery/tipsy/#notes

我也尝试过可以通过github下载的1.0.0a版本。两者都表现出同样的行为。我试图在2个不同的页面上集成它。 1页只使用jquery,另一页成功使用其他jquery ui小部件和插件,包括datepicker,accordion,autocomplete,json2。

关于我缺少的任何想法?我发现的所有帖子和方向都是“你需要做的就是......”这个有趣的声音。

3 个答案:

答案 0 :(得分:2)

我建议将$(window).load(...)更改为$(document).ready(...)

有可能在加载tipsy.js之前尝试运行javascript代码。执行$(document).ready(..)可以防止在页面完全加载之前不要调用.tipsy()

答案 1 :(得分:2)

我知道这是一个古老的问题,但我刚才有一个类似的问题。我的页面部分正在使用jQuery load()函数进行更改。我正在加载使用该表示法的页面以包含tipsy.js。我还可以看到firefox在Net窗口中包含了一些技巧,但是当试图执行.tipsy()时,它说“tipsy不是一个函数”。我等着在document.ready()上调用tipsy(),但由于某些原因它仍然无效。 所有这一切似乎都在Chrome中顺利运行,所以只为Firefox我添加了:

if ($.browser.mozilla)
{
    $.getScript("pathtotipsy/tipsy.js", function(data, textStatus, jqxhr) {
         $("#foo").tipsy();
         console.log('Success tipsy.js loaded !');
    });
}

这只是再次加载醉酒,由于某种原因现在它可以工作。希望有人有更好的解决方案。

答案 2 :(得分:1)

只是我的解决方案和问题。正如我后来发现的那样,jquery库被加载了两次。

这导致醉酒和其他功能不起作用,我。即他们是undefined