codecamp

jQuery UI 小部件方法调用

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

本节介绍了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对象。

jQuery UI 通过部件库扩展小部件
jQuery UI 为什么使用部件库
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }