【问题标题】:How to open jquery tooltip at mouse location, and leave it there如何在鼠标位置打开 jquery 工具提示,并将其留在那里
【发布时间】:2013-12-19 11:51:51
【问题描述】:

我的问题是我有一个动态对象列表,其中包含使用 jquery 工具提示制作的工具提示。我想在鼠标光标位置打开工具提示,就像使用track:true 时一样。对象是 jquery weekCalendar 中的事件。

但我不想在此之后根据光标移动工具提示。我希望工具提示在退出悬停区域时正常消失。

任何想法如何实现这一目标?

我试过了: 在项目的 onMouseOver 事件上将选项 track 设置为 false,并在 mouseOut 上将其设置回 true。没用。工具提示首次出现时,该选项无效。通过删除 mouseOut 中的 back to true 设置来验证这一点。工具提示在第一次出现时被跟踪,但在那之后就没有了。

所以我像这样创建工具提示:

$item.tooltip({
     items: $event,
     track: true,
         ...

然后在悬停事件中:

var item = $(event.target);
item.tooltip( "option", "track", false );

但是这种方法只适用于下一个要打开的工具提示,而不是已经打开的工具提示,它仍然会跟随光标。

【问题讨论】:

  • 显示你到目前为止所做的代码。

标签: javascript jquery-ui tooltip


【解决方案1】:

您可以使用 jQuery UI 的 position 属性来设置工具提示的位置。 这是Demo

HTML

    <input id="age" title="We ask for your age only for statistical purposes.">

JavaScript

$(function () {
      $(document).tooltip();
  });

  $(document).mousemove(function (event) {
      $(document).tooltip("option", "position", {
          my: "left+3 bottom-3",
          of: event
      });
  });

【讨论】:

  • 没有用。工具提示在默认位置打开,而不是在鼠标附近。
  • 我从两台设备上检查了演示,两者都运行良好。
  • 也许是因为我没有那样使用它。我为需要它的不同项目动态设置工具提示。它不仅仅是标题属性,还有大量数据。我的代码中的 $event 指的是日历事件。它适用于标题工具提示是的。
  • 好的测试更多,在我的日历事件中,我没有得到工具提示来处理鼠标移动事件,但它基本上可以处理悬停事件。但再次出现在下一个工具提示上。因此,工具提示将出现在您上次悬停在另一个元素上的位置。
  • 不能真正创建它,它不能与应用程序分离并且仍然可以工作。它有很多 JSON 依赖等。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-23
  • 1970-01-01
  • 2022-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多