-
$.Deferred() $.when() $.Deferred()是基于$.callBacks()來開發(fā)的 使用延遲而不是將所有需要同步的代碼寫到一起的原因是: 如果寫到一起要考慮作用域的問題,用延遲對象不用考慮 $.Deferred和$.done是一對,表示執(zhí)行成功時的處理 $.reject和$.fail是一對,表示執(zhí)行失敗時的處理 $.notify和$.progress是一對,表示執(zhí)行過程中的處理查看全部
-
最新jQuery2.1.1版本的結(jié)構(gòu): ;(function(global, factory) { factory(global); }(typeof window !== "undefined" ? window : this, function(window, noGlobal) { var jQuery = function( selector, context ) { return new jQuery.fn.init( selector, context ); }; jQuery.fn = jQuery.prototype = {}; // 核心方法 // 回調(diào)系統(tǒng) // 異步隊列 // 數(shù)據(jù)緩存 // 隊列操作 // 選擇器引 // 屬性操作 // 節(jié)點遍歷 // 文檔處理 // 樣式操作 // 屬性操作 // 事件體系 // AJAX交互 // 動畫引擎 return jQuery; }));查看全部
-
需要同時使用jQuery和其他JavaScript庫,可用 $.noConflict()把$的控制權(quán)交給其他庫。舊引用的$ 被保存在jQuery的初始化; noConflict() 簡單的恢復(fù)它們。查看全部
-
CSS1-CSS3提供了非常多的選擇器,總的來說我們可以分幾大類: 群組選擇器:逗號“,” 簡單選擇器:ID、標簽、類、屬性、通配符 關(guān)系選擇器:孩子、后代、相鄰、兄弟 偽類選擇器:動作偽類、目標偽類、語言偽類、狀態(tài)偽類、結(jié)構(gòu)偽類、取反偽類 群組選擇器用于分組合并多個處理的結(jié)構(gòu) selector1, selector2, selectorN 簡單選擇器"#" "." "[" "*" ,這些都有內(nèi)置原生API的支持,不過存在兼容問題。 屬性選擇器在CSS2.1中只有四種 [att] [att=val] [att~=val] [att|=val] 在CSS3中又增加了三種: [attr^=val] [attr$=val] [attr*=val] 當然除此之外jQuery還實現(xiàn)了自定義的屬性選擇器: [attribute!='value'] [attributeFilter1][attributeFilter2][attributeFilterN] 關(guān)系選擇器 關(guān)系選擇器存在著關(guān)聯(lián),不能是單獨存在的。 ancestor descendant parent > child prev + next prev ~ siblings 偽類 這個細分就很多了,jQuery把這些偽類加工并擴展成幾個大塊: 基本篩選器: eq get first lang It not odd root... 內(nèi)容篩選器: contains empty has parent... 可見篩選器: hidden visible 子元素篩選器: first-child nth-child only-child... 表單: bottom checkbox foucs input text...查看全部
-
通過new操作符構(gòu)建一個對象,一般經(jīng)過四步: A.創(chuàng)建一個新對象 B.將構(gòu)造函數(shù)的作用域賦給新對象(所以this就指向了這個新對象) C.執(zhí)行構(gòu)造函數(shù)中的代碼 D.返回這個新對象查看全部
-
通過下面的方式,可以講類中的函數(shù)進行私有化和公有化分開處理: 1.在類中定義一個json,其中都是公開的函數(shù),然后調(diào)用類中定義的函數(shù) 2.在new對象的時候,返回該json function AC() { var aa = function () { console.log('inner aa'); } publicMember = { aa: function () { console.log('public aa'); aa(); } } return publicMember; } var x = new AC(); x.aa();查看全部
-
JavaScript對于全局函數(shù)內(nèi)的this綁定為全局對象,而對于嵌套函數(shù)也采用了相同的解釋。 也就是說嵌套函數(shù)中的this是全局對象。所以下面的函數(shù)實現(xiàn)不了期望 var me = { name : 'Jimbor', blog : 'http://jmedia.cn/', sayMyName : function(){ var pre = 'My name is: '; function displayName(){ alert(pre + this.name); } displayName(); } } me.sayMyName(); 執(zhí)行結(jié)果如下: My name is: 可以改為: var me = { name : 'Jimbor', blog : 'http://jmedia.cn/', sayMyName : function(){ var pre = 'My name is: '; function displayName(){ alert(pre + this.name); } displayName.apply(me); } } me.sayMyName(); 或: var me = { name : 'Jimbor', blog : 'http://jmedia.cn/', sayMyName : function(){ var pre = 'My name is: '; var that = this; function displayName(){ alert(pre + that.name); } displayName(); } } me.sayMyName();查看全部
-
jQuery中的callback是對函數(shù)進行統(tǒng)一管理的 優(yōu)勢是對不同作用域的不同函數(shù)進行統(tǒng)一管理 <script> $.extend({ ABL:$.Callbacks(), AB: { Add : function (fc) { $.ABL.add(fc); }, Ding: function (d) { $.ABL.fire(d); } } }) function aa(ct) { console.log('aa:' + ct); } $.AB.Add(aa); (function () { function bb(ct) { console.log('bb:' + ct); } $.AB.Add(bb); })() $.AB.Ding("hello,new AB comessfsdfs."); </script>查看全部
-
刪除js數(shù)組中的一個元素: this.move=function(fc){ var i = ar.indexOf(fc); if(i>=0){ ar.splice(i,1); } }查看全部
-
關(guān)于call函數(shù)的說明: http://uule.iteye.com/blog/1158829查看全部
-
callback使用了觀察者模式 function aa() { console.log(11111); } function bb() { console.log(222222); } var cb = $.Callbacks(); cb.add(aa); cb.add(bb); cb.fire();查看全部
-
jQuery中的callback是對函數(shù)進行統(tǒng)一管理的。查看全部
-
通過為css傳json來設(shè)置樣式 <script src="jquery-2.0.3.js"></script> <script> $(function () { $('div').css({ width:'200px', background:'yellow' }) }) </script> <div>asdasfasd</div> attr應(yīng)該也可以使用json查看全部
-
$.proxy的使用 function show(a) { console.log(a) console.log(this); } $.proxy(show,document)(111) $.proxy(show,document,111) $('div').click($.proxy(show,aabbbdd))查看全部
-
window.eval和eval是不同的。 window.eval(“var a=1”);可以是變量在全局看到 eval(“var a=1”)只能使變量在局部可見。 原因: window.eval是window的屬性,而單獨的eval是關(guān)鍵字, 注:如果這樣寫: var x=eval x("var a=1") 這樣寫跟: window.eval("var a=1")是一樣的效果, 因為在將eval賦值給x時,eval是被看做window的屬性來使用的。查看全部
舉報
0/150
提交
取消