我编写了这段代码,将'jQuery Tooltip插件'应用于ajax加载的元素。
我的意思是我要在其鼠标悬停上显示工具提示的行由ajax加载到页面中。 这是代码:
$("[id^=pane]").delegate("[id^=comm]","mouseover",function() {
$(this).tooltip({
// each trashcan image works as a trigger
tip: "#tooltip",
// custom positioning
position: "center right",
// move tooltip a little bit to the right
offset: [0, 15],
// there is no delay when the mouse is moved away from the trigger
delay: 0
}).dynamic({ bottom: { direction: "down", bounce: true } });
});
鼠标悬停时显示工具提示但firebug报告此错误:
“$(this).tooltip({tip:”#tooltip“,position:”center right“,offset:[0,15],delay:0})。dynamic不是函数”
是因为使用$(this)???
答案 0 :(得分:2)
问题是您尚未加载dynamic
功能。来自the jQuery tools documentation:
动态插件和幻灯片效果不包含在标准jQuery Tools发行版中。您必须下载custom combination才能包含这些效果。
此外,您不需要delegate
来电。您在每次鼠标悬停时重做tooltip
创建。你只需要做一次;该插件将在内部处理事件。
$("[id^=pane] [id^=comm]").tooltip({/*...*/})
.dynamic({/*...*/});
这将选择所有元素,这些元素的ID为comm
,这些元素是具有以pane
开头的ID的元素的子元素。请注意,向所有这些元素添加适当的类会显着加快您的选择。
答案 1 :(得分:0)
现在已经解决了,我在谷歌搜索了更多并找到了解决方案。
这里是:
$("[id^=pane]").delegate("[id^=comm]:not(.hastooltip)","mouseover",function() {
$(this).addClass("hastooltip").tooltip({
tip: "#tooltip",
position: "bottom center",
offset: [-10, 0],
delay: 0
}).dynamic({ bottom: { direction: "down", bounce: true } }).mouseover();
});