亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發(fā)設計 > 正文

jQuery版本的演變

2019-11-11 07:16:29
字體:
來源:轉載
供稿:網(wǎng)友

2005年8月,John Resig提議改進PRototype的“Behaviour”庫,于是他在blog上發(fā)表了自己的想法,并用了3個例子做說明。 第一個例子是為元素注冊一個事件:

Behaviour.register({ '#example li': function(e) { e.onclick = function() { this.parentNode.removeChild(this); } }});

他認為應該改寫為:

$('#example li').bind('click',function() { this.parentNode.removeChild(thsi);});

第二個例子是為不同的元素注冊不同的事件:

Behaviour.register({ 'b.someclass':function(e) { e.onclick = function() { alert(this.innerHTML); }; }, '#someid u': function(e) { e.onmouSEOver = function() { this.innerHTML = 'YYUU'; }; }});

他認為應該改寫為:

$('b.someclass').bind('click',function(){ alert(this.innerHTML);});$('#someid u').bind('mouseover',function() { this.innerHTML = 'yyuu';});

第三個例子是為不斷變化的元素注冊不同的事件:

Behaviour.register({ '#foo ol li':function(a) { a.title = 'List Items'; a.onclick = function() { alert('Hello'); }; }, '#foo ol li.tem':function(a) { a.style.color = 'white'; }, '#foo ol li.tem .foo':function(a) { a.style.background = 'red'; }});

他認為應該改寫為:

$('#foo ol li).set('title','List Items') .bind('click',function(){ alert('hello'); }).select('.tmp').style('color','white') .select('.foo') .style('background','red');

這些代碼也是jQuery語法的最初雛形。當時John的想法很簡單:它發(fā)現(xiàn)這種語法相對現(xiàn)有的javaScript庫更為簡潔。但它沒想到的是,這篇文章一經發(fā)布就引起了業(yè)界的廣泛關注。于是John開始認真思考著這件事情(編寫語法更為簡潔的Javascript程序庫),直到2006年1月14日,John正式宣布以jQuery的名稱發(fā)布自己的程序庫。隨之而來的是jQuery的快速發(fā)展。

2006年8月,jQuery的第一個穩(wěn)定版本,并且已經支持CSS選擇符、事件處理和Ajax交互。

2007年7月,jQuery 1.1.3版發(fā)布,這次小版本的變化包含了對jQuery選擇符引擎執(zhí)行速度的顯著提升。從這個版本開始,jQuery的性能達到了Prototype、Mootools以及Dojo等同類JavaScript庫的水平。同年9月,jQuery 1.2版發(fā)布,它去掉了對XPath選擇符的支持,原因是相對于CSS語法它已經變得多余了。這一版能夠對效果進行更為靈活的定制,而且借助新增的命名空間事件,也使插件開發(fā)變得更容易。同事,jQuery UI項目也開始啟動,這個新的套件是作為曾經流行但已過時的Interface插件的替代項目而發(fā)布的。jQuery UI中包含大量預定義好的部件(widget),以及一組用于構建高級元素(例如可拖放、拖拽、排序)的工具。

2008年5月,jQuery 1.2.6版發(fā)布,這版主要是將Brandon Aaron開發(fā)的流行的Dimensions插件的功能移植到了核心庫中,同時也修改了許多BUG,而且有不少的性能得到提高。因此,如果把你以前的jQuery版本升級到1.2.6,那么你完全可以從你的代碼中排除Dimensions插件。

在jQuery迅速發(fā)展的同事,一些大的廠商也看中了商機。2009年9月,微軟和諾基亞公司正式宣布支持開源的jQuery庫,另外,微軟公司還宣稱他們將把jQuery作為Visual Studio工具集的一部分。他將提供包括jQuery的智能提示、代碼片段、示例文檔編制等內容在內的功能。微軟和諾基亞公司將長期稱為jQuery的用戶成員,其他成員還有Google、Intel、IBM、Intuit等公司。

2009年1月,jQuery 1.3版發(fā)布,它使用了全新的選擇符引擎Sizzle,在各個瀏覽器下全面超越其他同類型JavaScript框架的查詢速度,程序庫的性能也因此有了極大提升。這一版本的第2個變化就是提供live()方法,使用live()方法可以為當前及將來增加的元素綁定事件,在1.3版本之前,如果要為將來增加的元素綁定事件,需要使用livequery插件,而在1.3版中,可以直接用live()方法。

注意: Sizzle是jQuery作者John Resig新寫的DOM選擇器引擎。Sizzle有一個重要的特點,它是完全獨立于jQuery的,如果你不想用jQuery,可以只用Sizzle。Sizzle下載地址:http://sizzlejs.com/

2010年1月,也是jQuery的四周年生日,jQuery 1.4版發(fā)布,為了慶祝jQuery四周歲生日,jQuery團隊特別創(chuàng)建了jQuery14.com站點,帶來了連續(xù)14天的新版本專題介紹。

在1.3及更早版本中,jQuery通過JavaScript的eval方法來解析json對象。在1.4中,如果你用的瀏覽器支持,則會使用原生的JSON.parse解析json對象,這樣對json對象的書寫驗證則更為嚴格。比如:{foo:”bar”}的寫法將不會被驗證為合法的json對象,必須寫成{“foo”:”bar”}。如果你的程序打算升級到1.4版本,那么這一點要尤其注意。

2010年2月,jQuery 1.4.2版發(fā)布,它新增了有關事件委托的兩個方法:delegate()和undelegate()。delegate()用于替代1.3.2中的live()方法。這個方法比live()來的方便,而且也可以達到動態(tài)添加事件的作用。比如給表格的每個td綁定hover事件,代碼如下:

//1.4.2$("table").delegate("td","hover",function() { $(this).toggleClass("hover");});//1.3.2$("table").each(function() { $("td",this).live("hover",function() { $(this).toggleClass("hover"); });});

2011年1月,jQuery 1.5版發(fā)布。該版本做了如下修改: ● 重寫Ajax模塊 (1)最大的變化時調用jQuery.ajax(或jQuery.get,jQuery.post等)會返回jqXHR的對象,為不同瀏覽器內置的xmlHttpRequest對象提供了一致的超集,可以完成以前不可能完成的任務,比如:中止JSONP請求。 (2)提供了更高級的統(tǒng)一的API。 (3)更好的擴展性,可以方便地擴張Ajax的發(fā)送與接收,管理Ajax請求。 ● 新增延遲對象 開發(fā)人員借此可以使用無法立即獲得的返回值(如異步Ajax請求的返回結果),而且第一次能夠附加多個事件處理器。 比如,使用新的jQuery Ajax API實現(xiàn)下面的代碼:

//發(fā)出請求,并記住jqxhr對象var jqxhr = $.ajax({url:"example.php"}) .success(function(){alert("success");}) .error(function(){alert("error");}) .complete(function(){alert("complete");});//這里可以做其它工作...//完成另一功能jqxhr.complete(function(){alert("second complete");});

● jQuery.sub() 可以方便地創(chuàng)建jQuery副本,不影響原有的jQuery對象,避免jQuery沖突,實例代碼如下:

(function(){ var sub$ = jQuery.sub(); sub$.fn.myCustomMethod = function(){ return 'just for me'; }; sub$(document).ready(function(){ sub$('body').myCustomMethod(); //'just for me' });})();

● 內部開發(fā)系統(tǒng) jQuery團隊內部開發(fā)系統(tǒng)的兩點改變:已是服務器端用NodeJS替換了老的Java/Rhino系統(tǒng),使得團隊可以專注于JavaScript環(huán)境的新變化;二是所用的代碼壓縮優(yōu)化程序從Google Closure Compiler 切換到UglifyJS,新工具的壓縮效果非常令人滿意。

2011年5月,jQuery 1.6版發(fā)布。該版本重寫了Attribute模塊和大量的性能改進。值得注意的是此次更新有2個破壞性的變更,將會影響到現(xiàn)有打算升級到1.6的那些項目。 ● 變更1:更新data()方法 在jQuery1.5中,data()方法可以用來將元素上的數(shù)據(jù)屬性轉化為JSON形式的值。jQuery 1.6已經更新了此功能,data()方法獲取的值會以駝峰形式展示,以配合W3C HTML5 規(guī)范。比如:

//html:<span data-max-value="15" data-min-value="5"></span>//js:$('span').data(); //jQuery 1.5.2輸出:{"max-value":15,"min-value":5}$('span').data(); //jQuery 1.6輸出:{"maxValue":15,"minValue":5}

●變更2: 獨立方法處理DOM屬性,以區(qū)分DOM的attributes和properties 一般情況下,attributes表示從文檔中獲取DOM的狀態(tài)信息,而properties表示元素的動態(tài)狀態(tài)信息。比如:

//html:<input type="text" value="abc">//js:$("input:text").attr('value'); //輸出abc$("input:text").prop('value'); //輸出abc

如果用戶手動改變文本框的值為”abcdef”,那么:

$("input:text").attr('value'); //輸出abc$("input:text").prop('value'); //輸出abcdef

同樣,如果網(wǎng)頁中的復選框的代碼如下: <input type="checkbox" checked /> 那么結果也會有所不同:

$(":checkbox").attr('checked'); //輸出'',空字符串$(":checkbox").prop('checked'); //輸出true

所以在jQuery 1.6中,如果要判斷復選框是否選中,需在事件處理程序中使用:

$(this).prop("checked");//或者$(this).is(":checked")

由于jQuery 1.6對attr()方法的改變,導致很多使用attr()方法的程序出現(xiàn)問題,必須修改為1.6的語法才能使用,這個不向前兼容的改變引起了開發(fā)的強烈不滿。于是在不到10天的時間里,jQuery 1.6.1發(fā)布,它調整了attr()方法,使其兼容1.6之前的做法。比如:

$(":checkbox").attr("checked",true);$("option").attr("selected",true);$("input").attr("readonly",true);$("input").attr("disabled",true);if($(":checkbox").attr("checked")) { /* Do something */}

2011年,11月,jQuery 1.7版發(fā)布。該版本做了如下修改: ● 新的事件API:on()和off() 新的on()和off()API統(tǒng)一了jQuery中所有對文檔綁定事件的操作,而且它們也更加簡短。代碼如下:

$(elements).on(events[,selector][,data],handler);$(elements).off([events][,selector][,handler]);

其中on()替代了之前版本中的bind()、delegate()和live();off()替代了unbind()、undelegate()和die()。下面代碼是新舊API調用之間對應的例子:

$('a').bind('click',myHandler); //舊$('a').on('click',myHandler); //新$('form').bind('submit',{val:42},fn); //舊$('form').on('submit',{val:42},fn); //新$(window).unbind('scroll.myPlugin'); //舊$(window).off('scroll.myPlugin'); //新$('.comment').delegate('a.add','click',addNew); //舊$('.comment').on('click','a.add',addNew); //新$('.dialog').undeledate('a','click.myDlg'); //舊$('.dialog').off('click.myDlg','a'); //新$('a').live('click',fn); //舊$(document).on('click','a',fn); //新$('a').die('click'); //舊$(document).off('click','a'); //新

● 事件委托的性能改進 隨著頁面大小和復雜度的不斷增長,事件委托變得越來越重要。比如Backbone,JavaScriptMVC和Sproutcore等應用框架都使用了大量的事件委托??紤]到這一點,jQuery 1.7重構了事件委派,使其更加快速,尤其是在大多數(shù)常見情況下。

● 更好地支持IE 6/7/8下的HTML5 任何試圖在IE 6/7/8中使用新的類似于<section>的HTML5標簽,毫無疑問都會遇到IE6/7/8無法解析這些標簽,甚至將這些標簽從文檔中移除的問題。在jQuery 1.7中,為較舊IE版本中html()一類的方法建立了對HTML5的支持。這一功能和以前的innerShiv相同,但你仍然需要在你的文檔頭部加入HTML5Shiv(或者Modernizr)以使舊IE版本支持HTML5標簽。

● 更直觀地切換動畫 在jQuery的舊版本中,類似于slideToggle()或fadeToggle()的切換動畫在互相堆放和前一個動畫被stop()終止時無法正常工作。在1.7版本中這一情況被修復,動畫系統(tǒng)會記住元素的初始值并在一個切換的動畫被提前終止時充值它們。

● 異步模塊定義(AMD) jQuery 1.7支持AMD規(guī)范,可以和遵循AMD規(guī)范的腳本加載器協(xié)作,比如RequireJS或者curl.js。

● jQuery.Deferred jQuery.Deferred對象除了提供新的進度處理及通知方法之外,同事也新增一個可用來取得目前Deferred狀態(tài)的state()方法。Dederred也通過jQuery.Callbacks機制來提供給開發(fā)者一個統(tǒng)一的事件處理接口。

● jQuery.isNumeric() 在使用jQuery的過程中,有時候需要知道一個參數(shù)是數(shù)值或可以被成功的轉化為數(shù)值的情況。所以jQuery開發(fā)并公開jQuery.isNumeric()方法。為它傳遞一個任意類型的參數(shù),它將對應的返回true或false。

● 棄用和刪除的功能 jQuery將開始棄用過時的特性,以使代碼庫更加精簡,同時提供性能。比如live()和die()已在1.7版本中被棄用,這些方法還將繼續(xù)有效,但為了兼容以后的版本不建議使用它們,可以使用on()、off()和delegate()之類的代替。

jQuery.isNaN():這一未公開的實用函數(shù)已被刪除,新的jQuery.isNumeric()提供了類似的功能,并且可以被更好的支持。

jQuery.event.proxy():這一未公開和過時的方法已被刪除,開發(fā)者應使用公開的jQuery.proxy方法代替。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
国产精品你懂得| 你懂的网址一区二区三区| 亚洲区第一页| 老湿机69福利| 亚洲国产成人av好男人在线观看| 午夜综合激情| 欧美日韩精品一区二区三区| 超碰在线caoporn| 欧美国产中文字幕| 影音先锋可以看的网站| 麻豆极品一区二区三区| 无人码人妻一区二区三区免费| 婷婷色一区二区三区| 日本a级c片免费看三区| 丰满人妻一区二区三区四区53| 亚洲综合免费视频| 91免费看蜜桃| 亚洲一区二区三区在线观看网站| 在线看黄色网| 日韩一区免费视频| 国产又黄又粗的视频| 午夜天堂精品久久久久| 自产国语精品视频| 三大队在线观看| 伊人影院蕉久552| 欧美涩涩视频| 欧美午夜网站| 国产精品吹潮在线观看| 在线免费观看成年人视频| 色爱区成人综合网| 在线视频尤物| 日本道中文字幕| 欧美综合在线播放| 日本一级淫片色费放| eeuss影院18www免费| 色哟哟入口国产精品| 91wwwcom在线观看| 奇米777四色影视在线看| 丰满少妇高潮久久三区| 免费不卡中文字幕在线| 国产超碰在线一区| 国产真实乱全部视频| 嫩草影院一区二区| 日本高清无吗v一区| 亚洲第一视频网| 人妻激情另类乱人伦人妻| 欧美精品丝袜久久久中文字幕| 成人激情黄色小说| 麻豆传媒在线免费看| 日本视频一二区| 久久五月天色综合| 色综合天天综合网国产成人综合天| 亚洲靠逼com| 婷婷综合社区| 色哟哟在线观看视频| 在线观看一二三区| 卡通欧美亚洲| 日本少妇久久久| 欧美黄色三级| 中文字幕日日夜夜| 色综合久久久久综合体桃花网| 亚洲成人偷拍自拍| 欧美激情视频在线观看| 稀缺小u女呦精品呦| 久久99精品国产99久久| 国产精品日本欧美一区二区三区| 久久中文资源| 亚洲黄色av片| 中出福利视频| 亚洲一区免费观看| 欧美大片免费观看| 久久久无码中文字幕久...| 中文字幕一区二区三区在线播放| 国产白浆在线| 日韩一级片av| 亚洲香蕉网站| 久色视频网站| 美女视频久久黄| 亚洲色成人www永久网站| 亚洲xxx自由成熟| 国产成人精品在线看| 99在线视频影院| 97在线资源站| 在线日韩第一页| 亚洲美女视频在线免费观看| 欧美疯狂party性派对| 日韩免费中文专区| 欧美日韩亚洲自拍| 成人精品一区二区三区电影| 国产亚洲视频一区| 人妻精品一区一区三区蜜桃91| 麻豆精品一区二区av白丝在线| 性色av蜜臀av色欲av| 91麻豆国产福利在线观看宅福利| 国产精选一区二区| 尤物在线视频观看| yellow91字幕网在线| 一区二区三区毛片免费| 国产又粗又猛又爽又黄的网站| 怡红院红怡院欧美aⅴ怡春院| 国产成人精品综合网站| 亚洲韩国青草视频| 超碰激情在线| 天天操天天操天天干| 亚洲精品在线播放视频| 中文字幕在线观看的网站| 亚洲曰韩产成在线| 亚洲天堂2017| 亚欧无线一线二线三线区别| 色哟哟国产精品色哟哟| 天堂在线中文字幕| 亚洲网站情趣视频| 污污的网站在线免费观看| 欧美成人剧情片在线观看| 国产综合婷婷| 精品久久五月天| 国产成人自拍视频在线观看| 欧美国产欧美亚州国产日韩mv天天看完整| 亚洲国产成人无码av在线| 国产伦一区二区| 国产一区二区久久久| 欧美国产日产韩国视频| 成人在线视频一区二区三区| 国产一区二区三区高清播放| 同心难改在线观看| 国产探花一区在线观看| 欧美色爱综合网| 草莓视频成人appios| 亚洲天堂一二三| 一色道久久88加勒比一| 日韩久久久久久久久久| 黄色激情网站| 欧美日韩精品在线播放| 欧美日韩亚洲一区在线观看| 欧美一区网站| 国内精品久久久久久| 亚洲四虎影院| 欧美丰满嫩嫩电影| 欧美黑人做爰爽爽爽| 精品噜噜噜噜久久久久久久久试看| 91成人理论电影| 日韩一区二区三区电影在线观看| 色综合久久天天综合网| 午夜精品影视国产一区在线麻豆| 亚洲一区999| 中文字幕第38页| 欧美一区二区在线播放| a级片在线观看视频| 亚洲激情成人在线| 不卡一二三区首页| fc2ppv国产精品久久| 91在线看网站| 曰本三级在线| 免费黄视频在线观看| 日韩欧美中文字幕制服| 亚洲国产精品久久艾草纯爱| 国产成人精品日本亚洲| 深夜福利视频一区| 亚洲成av人片在www色猫咪| 天天做天天爱天天爽| 成人做爰www免费看视频网站| 波多野结衣视频播放| 国产不卡视频在线观看| 欧美激情另类| www.色播.com| 亚洲调教视频在线观看| 激情综合网五月| 欧美日韩一二区| 悠悠资源网久久精品| jizz在线播放| 26uuu成人网| 青青青爽久久午夜综合久久午夜| 蜜桃在线一区| 九九热播视频在线精品6| 国产不卡精品| 国产又粗又长又爽又黄的视频| 乱小说综合网站| 日韩一区二区三免费高清在线观看| 又黄又湿又爽又免费又色| 成人精品鲁一区一区二区| 欧美年轻男男videosbes| 男男成人高潮片免费网站| 神马久久资源| 亚洲在线日韩| 中文字幕在线观看视频免费| 久久综合伊人77777蜜臀| 高清不卡一区| 97超碰资源| 亚洲黄色免费视频| 亚洲一二三区视频| 91久久久久久白丝白浆欲热蜜臀| 九九九九九九精品任你躁| 国产香蕉尹人视频在线| 九九爱免费视频在线观看| 黄色av免费播放| 欧美日韩激情美女| 国产91精品看黄网站在线观看| 亚洲欧美卡通另类91av| 国产精品视频免费一区| 欧美大片免费观看| 欧美在线你懂的| 日韩一区欧美一区| 免费亚色电影在线观看| 图片专区亚洲欧美另类| 国产一二三区在线播放| 国产中文字幕免费观看| 欧美日韩伦理片| 在线观看福利电影| 一本色道久久加勒比88综合| 日韩一区二区三区在线| 久久午夜无码鲁丝片| 91久久影院| 免费国产h视频在线观看86| av毛片在线免费观看| xxxxxhd亚洲人hd| 国产精品福利视频| xxx亚洲日本| 91黄色免费网站| 久久久91麻豆精品国产一区| 黄色成人91| 亚洲欧美日韩精品| 91综合免费在线| 91黑丝高跟在线| 欧美在线激情| 欧美交a欧美精品喷水| 色偷偷www8888| 亚洲欧美日韩一级| 久久激情五月激情| 国产女人18毛片| 亚洲欧美制服第一页| 国产精品成人一区二区三区| 成人18免费入口| 国产精品久久中文字幕| 91黄色在线| 99热99在线| 国产又爽又黄无码无遮挡在线观看| 第一页在线观看| 中文字字幕在线中文乱码电影| 一区二区三区四区五区精品视频| 欧美日韩精品亚洲精品| 五月天婷婷社区| 亚洲欧美中文字幕在线一区| 久热这里只有精品在线| 国产九九九九九| 亚洲欧美日韩在线播放| 久操久操久操| 狠狠色狠狠色综合日日tαg| 9999精品视频| 麻豆最新免费在线视频| 星空无限传媒在线| 欧美黑人巨大精品一区二区| 99久久国产综合精品成人影院| 日本不卡二区高清三区| 国产嫩草在线视频| 狠狠色噜噜狠狠狠8888米奇| 青青青青国产视频| 国产精品电影网站| 人成免费电影一二三区在线观看| 亚洲欧美小说国产图片| eeuss影院www天堂免费| 成人午夜电影网站| 亚洲精品视频一区| 欧美在线观看视频在线| 日本高清一区二区视频| 最近免费中文字幕大全免费版视频| 国产一区二区网址| 日韩亚洲一区中文字幕| 在线观看免费成人av| 91国在线观看| 国内精彩免费自拍视频在线观看网址| 亚洲欧洲日产国码无码久久99| 国产手机视频一区二区| 亚洲精品电影网在线观看| 黄色av网站免费观看| 最近中文字幕在线6| 伊人久久大香| **精品中文字幕一区二区三区| 在线视频一区观看| 亚洲色图另类色图| 蜜臀av一区二区三区有限公司| 翔田千里88av中文字幕| 欧美三区视频| 在线视频成人| 精品视频在线免费| 中文字幕在线综合| 在线一区视频观看| 精品一区二区三区中文字幕老牛| 中国女人内谢69xxxx视频| 日韩国产中文字幕| 国产精品伦一区二区三区视频| gv天堂gv无码男同在线观看| 日本欧美视频| 夜夜操免费视频| 色婷婷久久久亚洲一区二区三区| 久久黄色精品视频| 亚洲国产精品人久久电影| 99这里有精品视频| 91探花福利精品国产自产在线| 2022国产精品| 日本xxxwww免费视频| 国产精品久久久久国产a级| 国产一区二区三区四区在线观看| 欧美伊人亚洲伊人色综合动图| 日本一区二区三区久久| 亚洲免费av一区二区三区| av网站免费播放| 欧美激情一区二区三区高清视频| 一区二区三区自拍| 亚洲在线视频播放| 久久久久久久久久久久久9999| 91精品久久久久久久久久入口| 亚洲专区在线视频| 亚洲3atv精品一区二区三区| 在线观看免费电影| 国产精品sss在线观看av| 黄网在线观看网址入口| 你懂的在线免费观看| 一区二区黄色片| 日韩一区二区影院| 久久偷拍免费视频| 午夜不卡av免费| 99久久综合99久久综合网站| 久久精品国产美女| 欧美午夜久久| 欧美日韩国产精品一区二区亚洲| 亚洲精品第二页| 99久久精品免费观看| 精品国产福利一区二区在线|