我正在尝试使用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。
我也尝试过可以通过github下载的1.0.0a版本。两者都表现出同样的行为。我试图在2个不同的页面上集成它。 1页只使用jquery,另一页成功使用其他jquery ui小部件和插件,包括datepicker,accordion,autocomplete,json2。
关于我缺少的任何想法?我发现的所有帖子和方向都是“你需要做的就是......”这个有趣的声音。
答案 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
。