jQuery Tooltip

Tooltip(工具提示)是鼠标悬停时在元素旁弹出的说明小气泡,用于解释按钮用途、缩写含义、表单字段要求。jQuery UI 的 tooltip 组件基于原生 title 属性即可工作,也支持完全自定义内容与位置,省去手写定位、延时、动画的麻烦。

1. 引入 jQuery UI

tooltip 属于 jQuery UI,引入 jQuery + jQuery UI 的 JS 与 CSS(CSS 提供气泡默认样式):

<link href="https://example.com/jquery-ui.min.css" rel="stylesheet">

说明:示例中的 https://example.com 地址为占位域名,实际使用请替换为官方 CDN 或本地文件路径。
<script src="https://example.com/jquery.min.js"></script>
<script src="https://example.com/jquery-ui.min.js"></script>

2. 基于 title 的最小用法

HTML 写好 title,JS 一行初始化,即获得带定位与动画的提示气泡:

<button id="save" title="保存当前修改到服务器">保存</button>
<script>
$("#save").tooltip();
// 效果:鼠标悬停"保存"按钮时上方浮出 title 文字气泡,移开鼠标即消失
</script>

3. 自定义内容与触发元素

用 items 指定作用元素、content 返回任意内容(可含图片、链接等富文本):

<a id="help" data-tip="点击可查看<span style='color:red'>帮助文档</span>">帮助</a>
<script>
$("#help").tooltip({
  items: "[data-tip]",              // 只对带 data-tip 的元素生效
  content: function () {
    return $(this).data("tip");     // 返回的自定义内容会按 HTML 渲染
  }
});
// 效果:悬停"帮助"链接时弹出带红色"帮助文档"字样的富文本气泡
</script>

4. 位置与延迟选项

选项说明示例
position气泡相对目标元素的位置{ my: "left+15 center", at: "right center" }
tracktrue 时气泡跟随鼠标移动track: true
show / hide出现 / 消失动画与延迟show: { delay: 500 }

示例——气泡出现在输入框右侧,悬停半秒后才出现:

$("#age").tooltip({
  position: { my: "left+15 center", at: "right center" },
  show: { delay: 500 }
});
// 效果:鼠标悬停 0.5 秒后气泡从输入框右侧浮出,避免误触闪烁

5. 动态内容与最佳实践

  • 在 document 上初始化即可事件委托,Ajax 后添加的元素自动获得气泡,无需重复绑定:$(document).tooltip();
  • title 是可访问性属性,屏幕阅读器可读;自定义 content 的富文本气泡需额外提供等效文本;
  • 气泡内容应精简,长说明文字应改放弹层或详情页,避免遮挡正文。

小结

一行 $("#el").tooltip() 即可获得带定位、延迟与动画的标准气泡;用 items + content 支持富文本,在 document 上初始化即可覆盖动态元素,这是手写悬停逻辑难以企及的省力之处。

笔记加载中…