jQuery Tooltip插件错误

时间:2011-01-15 08:36:10

标签: jquery-plugins jquery tooltip

我编写了这段代码,将'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)???

2 个答案:

答案 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();
});