首页 教程 JavaScript 开发教程 jQuery UI 技术教程 jQuery UI 小部件方法调用
jQuery UI 技术教程
1 . jQuery UI 教程2 . jQuery UI 简介3 . jQuery UI 下载4 . jQuery UI 使用5 . jQuery UI 定制6 . jQuery UI 工作原理7 . jQuery UI 主题8 . jQuery UI ThemeRoller9 . jQuery UI CSS 框架 API10 . jQuery UI 设计主题11 . jQuery UI 部件库12 . jQuery UI 通过部件库扩展小部件13 . jQuery UI 小部件方法调用14 . jQuery UI 为什么使用部件库15 . jQuery UI 如何使用部件库16 . jQuery UI API 文档17 . jQuery UI API 类别 – 特效18 . jQuery UI API 类别 – 特效核心19 . jQuery UI API 类别 – 交互20 . jQuery UI API 类别 – 方法重载21 . jQuery UI API 类别 – 方法22 . jQuery UI API 类别 – 选择器23 . jQuery UI API 类别 – 主题24 . jQuery UI API 类别 – UI 核心25 . jQuery UI API 类别 – 实用工具26 . jQuery UI API 类别 – 小部件27 . jQuery UI 实例28 . jQuery UI 实例 – 拖动(Draggable)29 . jQuery UI 实例 – 放置(Droppable)30 . jQuery UI 实例 – 缩放(Resizable)31 . jQuery UI 实例 – 选择(Selectable)32 . jQuery UI 实例 – 排序(Sortable)33 . jQuery UI 实例 – 折叠面板(Accordion)34 . jQuery UI 实例 – 自动完成(Autocomplete)35 . jQuery UI 实例 – 按钮(Button)36 . jQuery UI 实例 – 日期选择器(Datepicker)37 . jQuery UI 实例 – 对话框(Dialog)38 . jQuery UI 实例 – 菜单(Menu)39 . jQuery UI 实例 – 进度条(Progressbar)40 . jQuery UI 实例 – 滑块(Slider)41 . jQuery UI 实例 – 旋转器(Spinner)42 . jQuery UI 实例 – 标签页(Tabs)43 . jQuery UI 实例 – 工具提示框(Tooltip)44 . jQuery UI 实例 – 特效(Effect)45 . jQuery UI 实例 – 显示(Show)46 . jQuery UI 实例 – 隐藏(Hide)47 . jQuery UI 实例 – 切换(Toggle)48 . jQuery UI 实例 – 添加 Class(Add Class)49 . jQuery UI 实例 – 移除 Class(Remove Class)50 . jQuery UI 实例 – 切换 Class(Toggle Class)51 . jQuery UI 实例 – 转换 Class(Switch Class)52 . jQuery UI 实例 – 颜色动画(Color Animation)53 . jQuery UI 实例 – 定位(Position)54 . jQuery UI 实例 – 部件库(Widget Factory)

jQuery UI 小部件方法调用

jQuery UI 小部件(Widget)方法调用

小部件(Widget)是通过 部件库(Widget Factory) 使用方法来改变他们初始化后的状态和执行动作而被创建的。有两种调用小部件方法的方式 - 通过部件库(Widget Factory)创建的插件,或者通过调用元素实例对象上的方法。

插件调用

使用小部件的插件调用方法,把方法名称以字符串形式进行传递。例如,点击这里查看,如何调用 dialog(对话框)小部件的 close() 方法

$( ".selector" ).dialog( "close" );

如果方法要求参数 ,请作为额外的参数传递给插件。点击这里查看,如何调用 dialog(对话框)的 option() 方法

$( ".selector" ).dialog( "option", "height" );

这会返回 dialog(对话框)的 height 选项 的值。

实例调用

每个小部件的每个实例都是使用 jQuery.data() 存储在元素上。为了检索实例对象,请使用小部件的全称作为键名调用 jQuery.data()。具体如下面实例所示。

var dialog = $( ".selector" ).data( "ui-dialog" );

在您引用实例对象之后,可以直接在上面调用方法。

var dialog = $( ".selector" ).data( "ui-dialog" );
dialog.close();

在 jQuery UI 1.11 中,新的 instance() 方法会使得这个过程变得更简单。

$( ".selector" ).dialog( "instance" ).close();

返回类型

大多数通过小部件的插件调用的方法将返回一个 jQuery 对象,所以方法调用可以通过额外的 jQuery 方法链接。当在实例上进行调用时,则会返回 undefined。具体如下面实例所示。

var dialog = $( ".selector" ).dialog();
 
// Instance invocation - returns undefined
dialog.data( "ui-dialog" ).close();
 
// Plugin invocation - returns a jQuery object
dialog.dialog( "close" );
 
// Therefore, plugin method invocation makes it possible to
// chain method calls with other jQuery functions
dialog.dialog( "close" )
    .css( "color", "red" );

例外的是,返回小部件相关信息的那些方法。例如 dialog(对话框)的 isOpen() 方法

$( ".selector" )
    .dialog( "isOpen" )
    // This will throw a TypeError
    .css( "color", "red" );

这会产生一个 TypeError 错误,因为 isOpen() 返回的是一个布尔值,而不是一个 jQuery 对象。