jQuery Tipsy插件。Tipsy不是一个函数。

3

我正在尝试使用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();
});

无论如何,使用Firebug来调试Firefox时,我遇到了以下错误:
$("#example-1").tipsy is not a function

我可以使用Firebug的“Script”选项卡来查看jquery.tipsy.js文件,因此我知道该文件已经被加载。但IE报告错误:“对象不支持此属性或方法”。
我已经尝试使用从网站下载的0.1.7版本的tipsy。

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

我还尝试了通过Github下载的1.0.0a版本。两个版本都显示相同的行为。我尝试将其集成到2个不同的页面中。一个页面只使用jquery,另一个页面成功地使用其他jquery UI小部件和插件,包括datepicker、accordion、autocomplete和json2。
你有什么想法?我找到的所有关于tipsy的帖子和指导都像“你所要做的就是……”
3个回答

2

我知道这是一个老问题,但我最近在使用tipsy时遇到了类似的问题。我的页面的部分内容是使用jQuery的load()函数进行更改的。我正在加载使用符号来包含tipsy.js的页面。我还可以看到firefox在Net窗口中包含tipsy,但是尝试执行.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 !');
    });
}

这只是重新加载了Tipsy,不知何故现在它可以工作了。希望有人能提供更好的解决方案。


2
我建议将$(window).load(...)更改为$(document).ready(...)
可能该javascript代码在tipsy.js加载之前尝试运行。使用$(document).ready(..)将防止这种情况发生,因为它不允许在页面完全加载之前调用.tipsy()

1

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

这导致tipsy和其他函数无法工作,即它们是未定义的


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接