如何为jquery扩展静态和实例方法

如何为jquery扩展静态和实例方法,第1张

在一块屏幕上同时打开两个界面,无论是对于 iPad 还是 iPhone 来说都是非常实用的。所以,苹果在 iOS 9 当中推出的分屏以及画中画功能引起了用户的激烈反响。虽然目前大部分多任务功能只限于 iPad Air 2、iPad mini 4 以及即将发售的 iPad Pro,但如今一款新插件的出现改变了这一切。

近日,盘古团队发布 iOS 9 越狱工具(详情)之后仅过一天,Cydia 平台上出现了一款名为 Medusa(是的没错,就是美杜莎)的插件。用户安装这款插件之后,除了 2010 年的初代 iPad mini 之外,任何一款 iPad——包括 iPad 2/3/4、初代 iPad Air、iPad mini 1/2/3 都可以使用分屏以及画中画功能。

Medusa 的强大之处还不仅在此,它还可以让 iPhone 也享受到多任务 *** 作的好处。需要说明的是,目前 Medusa 当中的

iPhone 画中画功能尚未激活,开发者还在进行着后续的一些完善工作。而且,这款插件目前还存在着一些

bug,使用起来可能会对体验有所影响。除此之外,Medusa 支持的 iPhone 型号名单目前也还未公布。

如果你想要通过 Medusa 体验到旧款 iPad 又或者是 iPhone 的分屏功能,可以通过 Cydia 添加以下源地址:https://repo.cpdigitaldarkroom.com

另一方面,还有另外一名开发者在 iPhone 6 上实现了画中画功能(下图),不过他只是通过社交平台进行展示,至于插件什么时候上架还是一个未知数http://www.315nk.com/不清楚追问,希望能帮助到您。

jQuery为开发插件提拱了两个方法,分别是:

jQuery.fn.extend()

jQuery.extend()

虽然 javascript 没有明确的类的概念,但是用类来理解它,会更方便。

jQuery便是一个封装得非常好的类,比如我们用 语句 $("#btn1") 会生成一个 jQuery类的实例。

jQuery.extend(object) 为jQuery类添加类方法,可以理解为添加静态方法。如:

jQuery.extend({

min: function(a, b) { return a <b ? a : b},

max: function(a, b) { return a >b ? a : b}

})

jQuery.min(2,3)// 2

jQuery.max(4,5)// 5

ObjectjQuery.extend( target, object1, [objectN])用一个或多个其他对象来扩展一个对象,返回被扩展的对象

var settings = { validate: false, limit: 5, name: "foo" }

var options = { validate: true, name: "bar" }

jQuery.extend(settings, options)

结果:settings == { validate: true, limit: 5, name: "bar" }

jQuery.fn.extend(object)对jQuery.prototype进得扩展,就是为jQuery类添加“成员函数”。jQuery类的实例可以使用这个“成员函数”。

比如我们要开发一个插件,做一个特殊的编辑框,当它被点击时,便alert 当前编辑框里的内容。可以这么做:

$.fn.extend({

alertWhileClick:function() {

$(this).click(function(){

alert($(this).val())

})

}

})

$("#input1").alertWhileClick()// 页面上为:

$("#input1") 为一个jQuery实例,当它调用成员方法 alertWhileClick后,便实现了扩展,每次被点击时它会先d出目前编辑里的内容。

jQuery 如何写插件 -

jQuery插件的开发包括两种:

一种是类级别的插件开发,即给jQuery添加新的全局函数,相当于给jQuery类本身添加方法。jQuery的全局函数就是属于jQuery命名空间的函数,另一种是对象级别的插件开发,即给jQuery对象添加方法。下面就两种函数的开发做详细的说明。

1、类级别的插件开发

类级别的插件开发最直接的理解就是给jQuery类添加类方法,可以理解为添加静态方法。典型的例子就是$.AJAX()这个函数,将函数定义于jQuery的命名空间中。关于类级别的插件开发可以采用如下几种形式进行扩展:

1.1 

添加一个新的全局函数

添加一个全局函数,我们只需如下定义:

jQuery.foo = 

function() { 

alert('This is a test. This is only a 

test.') 

1.2 

增加多个全局函数

添加多个全局函数,可采用如下定义:

Java代码 收藏代码

jQuery.foo = function() { 

alert('This is a test. This is 

only a test.') 

jQuery.bar = 

function(param) { 

alert('This function takes a 

parameter, which is "' + param + '".') 

调用时和一个函数的一样的:jQuery.foo()jQuery.bar()或者$.foo()$.bar('bar')

1.3 

使用jQuery.extend(object) 

jQuery.extend({ 

foo: 

function() { 

alert('This is a test. This is 

only a test.') 

}, 

bar: function(param) 

alert('This function takes a 

parameter, which is "' + param +'".') 

})


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11607599.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存