当前位置: 首页 > news >正文

jQuery UI API 类别 - UI 核心(UI Core)

jQuery UI API 类别 - UI 核心(UI Core)

UI Core(User Interface Core)是 jQuery UI 的基础核心类别,它提供了所有其他组件(Widgets、Interactions、Effects)所依赖的最底层功能。UI Core 本身体积很小,但它是整个 jQuery UI 框架的“地基”。

官方文档地址:https://api.jqueryui.com/category/ui-core/(适用于最新版本 1.14.1)

UI Core 包含的主要组件
组件名称描述主要作用与示例
jQuery.widget()(Widget Factory)部件工厂,用于创建和管理所有状态化小部件的框架。所有官方小部件(如 Datepicker、Dialog、Tabs)都基于它构建;开发者自定义小部件也依赖它。
:focusable:tabbable选择器扩展 jQuery 的自定义选择器,用于无障碍访问(Accessibility)。精确选中可获得焦点或可通过 Tab 键导航的元素,常用于键盘焦点管理。
.position()强大的元素定位工具,支持多种定位方式(相对、碰撞检测、偏移等)。用于 Dialog、Tooltip、Autocomplete 等组件的定位。
.uniqueId().removeUniqueId()为没有 ID 的元素自动生成/移除唯一 ID。内部用于 ARIA 无障碍属性(如 aria-controls)。
.zIndex()获取或设置元素的 z-index,支持相对于父元素或兄弟元素。用于管理模态对话框、菜单等叠加顺序。
.keyCode键盘事件键码常量对象(如. u i . k e y C o d e . E N T E R 、 .ui.keyCode.ENTER、.ui.keyCode.ENTER.ui.keyCode.ESCAPE)。统一处理键盘交互,避免跨浏览器键码差异。
.scrollParent()返回最近的可滚动父元素。用于拖拽、滚动时保持可见性等场景。
.contains()安全判断一个 DOM 元素是否包含另一个元素(兼容性更好)。内部用于事件委托、焦点管理。
.escapeSelector()转义 CSS 选择器中的特殊字符。用于动态生成选择器。
关键组件详解
  1. Widget Factory($.widget)

    • 最核心部分,所有小部件的统一 API、状态管理、继承、事件系统都来自这里。
    • 详见之前章节“部件库(Widget Factory)”。
  2. .position() 方法

    $("#tooltip").position({my:"left+10 center",// 自身定位点at:"right center",// 目标元素定位点of:"#target",// 相对哪个元素collision:"flip"// 超出视口时翻转});
    • 支持丰富的选项:my、at、of、collision、using、within 等。
  3. :focusable 和 :tabbable 选择器

    • 用于键盘导航和焦点陷阱(focus trapping),在 Dialog、Menu 等组件中大量使用。
    varnext=$(":tabbable").first();// 获取第一个可 Tab 元素
  4. $.ui.keyCode

    if(event.keyCode===$.ui.keyCode.ESCAPE){$("#dialog").dialog("close");}
UI Core 的重要性
  • 体积小:单独引入 UI Core 时文件很小(几 KB)。
  • 依赖关系:Widgets、Interactions、Effects 都必须依赖 UI Core。
  • 在使用 Download Builder 自定义下载时,Core是必选项(不能取消)。

注意:jQuery UI 已进入维护模式(最新 1.14.1),UI Core 部分非常稳定,常被其他库借鉴(如 jQuery Mobile)。

如果您想深入某个核心组件(如 .position() 的所有选项详解,或 Widget Factory 的内部实现),欢迎继续提问!

http://www.cnnetsun.cn/news/158434.html

相关文章:

  • 华为网络设备基本配置命令
  • 志同道合交友网站毕业论文+PPT(附源代码+演示视频)
  • 【Java 25 LTS六大核心特性】
  • Langchain-Chatchat助力医疗文档智能检索与问答
  • Langchain-Chatchat如何实现文档相似度比对?查重与去重依据
  • java学习--String和StringBuffer互转
  • 如何用Langchain-Chatchat实现本地化AI智能问答?
  • Langchain-Chatchat如何处理多义词歧义?上下文感知消歧算法
  • Langchain-Chatchat如何实现文档访问统计?了解知识使用情况
  • Langchain-Chatchat与Argo CD持续交付集成:自动化部署流水线
  • Langchain-Chatchat与Consul服务发现集成:动态节点管理
  • Langchain-Chatchat与Airflow工作流集成:复杂ETL流程调度
  • 验证码实现
  • 2.1 CPU脚本性能优化简介
  • Langchain-Chatchat问答系统压测报告:万级QPS承载能力验证
  • Langchain-Chatchat支持自定义元数据字段:扩展文档属性信息
  • 双侧独立电驱动车辆转向控制:Matlab/Simulink建模之旅
  • 500kW三相光伏并网逆变器仿真模型探索
  • 基于Optislang的电机多目标优化:以电机气息磁通密度空间某一阶次为优化目标教程
  • 彼得林奇对公司自由现金流转换率的分析
  • 通达信止损价位
  • Langchain-Chatchat与Elasticsearch集成:增强全文检索能力
  • 历年中国海洋大学计算机考研复试上机真题
  • Langchain-Chatchat与OpenAI对比:为何本地化部署更受企业青睐
  • 用 SAT 运行时跟踪自动生成 ABAP 的 UML 时序图:拦截标准生成器,输出 PlantUML,让文档从痛苦变成顺手
  • 什么是护网(HVV)?参加护网需要掌握什么技术?
  • 通过微调通用视觉或时序大模型提升小样本预测能力,或利用生成模型(如GAN、扩散模型)进行高质量数据增强与情景模拟
  • Rust嵌入式开发终极指南:用cross实现DMA驱动的零配置跨编译
  • Carnac:让你的键盘操作惊艳全场!3大核心功能深度解析
  • 5分钟搞定FastGPT上下文管理:让AI对话像真人一样连贯自然