第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
  • Math.max(0, startTime + options.duration - createTime()) 過(guò)濾出數(shù)組最大值

    +new Date 時(shí)間戳

    查看全部
    0 采集 收起 來(lái)源:動(dòng)畫(huà)算法

    2020-05-13

  • onceRun =?

    function(func) {

    ? ? ? ? ? ? ? ? ? ??

    ? ? ? ? ? ? ? ? ? ? makeAnim(element, options, func);

    ? ? ? ? ? ? ? ? }


    func =?

    function() {

    ? ? ? ? ? ? ? ? ? ? ? ? fireing = false;

    ? ? ? ? ? ? ? ? ? ? ? ? _fire();

    ? ? ? ? ? ? ? ? ? ? }


    查看全部
    0 采集 收起 來(lái)源:動(dòng)畫(huà)思路

    2020-05-12

    1. 在 ajax 請(qǐng)求中類(lèi)型如果是 type 是 post,其實(shí)內(nèi)部都只會(huì)用 get,因?yàn)槠淇缬虻脑砭褪怯玫膭?dòng)態(tài)加載 script 的 src,所以我們只能把參數(shù)通過(guò) url 的方式傳遞

    2. 我們使用了 dataType 是 'jsonp' 但是 jquery 內(nèi)部有進(jìn)一步的優(yōu)化,如果探測(cè)到還是同域下的請(qǐng)求,依然還是用 XmlHttpRequest 處理,所以我們?cè)谕蛳聹y(cè)試的話(huà),可以把 crossDomain 選項(xiàng)置為 true,這樣強(qiáng)制為跨域處理,這樣就會(huì)通過(guò) script 處理了


    查看全部
    0 采集 收起 來(lái)源:jsonp的實(shí)現(xiàn)

    2020-05-11

  • jsonp: "callback", //傳遞給請(qǐng)求處理程序或頁(yè)面的,用以獲得jsonp回調(diào)函數(shù)名的 參數(shù)名(一般默認(rèn)為:callback)

    ? ? jsonpCallback: "Handler", //自定義的jsonp回調(diào)函數(shù)名稱(chēng),默認(rèn)為jQuery自動(dòng)生成的隨機(jī)函數(shù)名,也可以寫(xiě)"?",jQuery會(huì)自動(dòng)為你處理數(shù)據(jù)


    查看全部
    0 采集 收起 來(lái)源:json與jsonp

    2020-05-11

  • 如果 on 中傳入?yún)?shù) selector ,意味著就是有委托的處理,那么我們就需要用一個(gè)標(biāo)記來(lái)記錄下這個(gè)元素到底委托了多少次。

    查看全部
    0 采集 收起 來(lái)源:委托設(shè)計(jì)

    2020-05-08

  • event 對(duì)象的屬性和方法包含了當(dāng)前事件的狀態(tài)。

    當(dāng)前事件,是指正在發(fā)生的事件;狀態(tài),是與事件有關(guān)的性質(zhì),如引發(fā)事件的?DOM?元素、鼠標(biāo)的狀態(tài)、按下的鍵等等。

    ?

    如上結(jié)構(gòu),currentTarget 是 aaron 的 div 元素 , target 是 p 元素,事件對(duì)象是有作用域的 currentTarget 是等于 this 的。


    e.stopImmediatePropagation 方法不僅阻止了一個(gè)事件的冒泡,也把這個(gè)元素上的其他綁定事件也阻止了。


    事件對(duì)象提供了 preventDefault,stopPropagation2 個(gè)方法一個(gè)停止事件傳播,一個(gè)傳遞默認(rèn)的行為(暫且無(wú)視IE),

    查看全部
    0 采集 收起 來(lái)源:事件對(duì)象

    2020-05-08

  • 在下列情況下,應(yīng)該使用 .live()或 .delegate(),而不能使用 .bind():

    1.?為DOM中的很多元素綁定相同事件;
    2.?為DOM中尚不存在的元素綁定事件;
    3.?用.bind()的代價(jià)是非常大的,它會(huì)把相同的一個(gè)事件處理程序hook到所有匹配的DOM元素上
    4.?不要再用.live()了,它已經(jīng)不再被推薦了,而且還有許多問(wèn)題
    5.?.delegate()會(huì)提供很好的方法來(lái)提高效率,同時(shí)我們可以添加一事件處理方法到動(dòng)態(tài)添加的元素上

    我們可以用 .on() 來(lái)代替上述的 3 種方法。

    不足點(diǎn)也是有的:

    1.?并非所有的事件都能冒泡,如load,?change,?submit,?focus,?blur
    2.?加大管理復(fù)雜
    3.?不好模擬用戶(hù)觸發(fā)事件
    4.?如何取舍就看項(xiàng)目實(shí)際中運(yùn)用了



    ?.bind() 綁定事件的時(shí)候這些元素必須已經(jīng)存在,很明顯就是直接調(diào)用沒(méi)利用委托機(jī)制,如下:

    問(wèn):單擊ddddd,會(huì)在最上面顯示sdfsdf,但我單擊sdfsdf后,并沒(méi)有顯示“on觸發(fā)”,是因?yàn)閛n不能綁定動(dòng)態(tài)添加的元素嗎?

    <body>

    ? <p>on,click,delegate</p>

    ? <h2>ddddd</h2>

    ? <span></span

    <script>

    $("h2").on("click",function(){

    ? ? $("p:first").before(" <h3>sdfsdf</h3>");

    })

    $("h3").on("click", function(){

    ? ? $("span").append("on觸發(fā)! ");

    });


    答:on支持動(dòng)態(tài)綁定,只不過(guò)需要綁定到父級(jí)元素上。(使用委托機(jī)制)

    <script>

    $("h2").on("click",function(){

    $("p:first").before(" <h3>sdfsdf</h3>");

    })

    $("body").on("click","h3", function(){

    ??? $("span").append("on觸發(fā)! ");

    });

    ?</script>


    查看全部
    0 采集 收起 來(lái)源:幾種綁定

    2020-05-08

  • jQuery不支持獲取隱藏元素的偏移坐標(biāo)。同樣的,也無(wú)法取得隱藏元素的 border, margin, 或 padding 信息

    查看全部
    0 采集 收起 來(lái)源:坐標(biāo)算法

    2020-05-07

  • cloneNode不會(huì)復(fù)制javascript屬性,比如事件,這個(gè)方法只會(huì)復(fù)制特性。當(dāng)然IE有這個(gè)BUG它會(huì)復(fù)制事件處理程序。cloneNode(a)方法接受一個(gè)布爾值參數(shù),表示是否深拷貝。

    true:表示執(zhí)行深拷貝,復(fù)制本節(jié)點(diǎn)以及整個(gè)子節(jié)點(diǎn)樹(shù)。

    false:淺拷貝,只復(fù)制節(jié)點(diǎn)本身。

    復(fù)制后返回的節(jié)點(diǎn)副本屬于文檔所有,但是并沒(méi)有父節(jié)點(diǎn)。除非使用 appendChild,insertChild(),replaceChild()將它添加到文檔。



    cloneNode(true)的時(shí)候是遍歷的節(jié)點(diǎn),但是不會(huì)把對(duì)應(yīng)的事件與數(shù)據(jù)給復(fù)制,但是jQuery.clone方法克隆的時(shí)候,是會(huì)把該節(jié)點(diǎn)上的事件與數(shù)據(jù)給一并復(fù)制過(guò)去的,這樣的機(jī)制是建立在數(shù)據(jù)分離的基礎(chǔ)上。


    查看全部
    0 采集 收起 來(lái)源:克隆

    2020-05-06

  • 移除 涉及節(jié)點(diǎn)刪除的接口jQuery劃分了四個(gè)分別是detach,empty,remove,unwrap,因?yàn)槭褂玫姆秶煌?,所以功能有所差異,但是總的?lái)說(shuō)都是用來(lái)清理節(jié)點(diǎn)的。?

    .empty() 從DOM中移除集合中匹配元素的所有子節(jié)點(diǎn),為了避免內(nèi)存泄漏,jQuery先移除子元素的數(shù)據(jù)和事件處理函數(shù),然后移除子元素。?

    .remove() 將元素移出DOM,當(dāng)我們想將元素自身移除時(shí)我們用 .remove(),同時(shí)也會(huì)移除元素內(nèi)部的一切,包括綁定的事件及與該元素相關(guān)的jQuery數(shù)據(jù)。remove是empty的加強(qiáng)版,把本身的父節(jié)點(diǎn)也清除掉了。因?yàn)閞emove支持過(guò)濾器所以支持傳遞selecor。remove需要?jiǎng)h除自身及其所有的子元素包括事件與數(shù)據(jù),所以要通過(guò)找到父節(jié)點(diǎn)parnetNode移除。?

    .detach() 如果你想刪除元素,不破壞他們的數(shù)據(jù)或事件處理程序(這些綁定的信息還可以在之后被重新添加回來(lái))。.detach() 方法和.remove()一樣, 除了 .detach()保存所有jQuery數(shù)據(jù)和被移走的元素相關(guān)聯(lián)。當(dāng)需要移走一個(gè)元素,不久又將該元素插入DOM時(shí),這種方法很有用。

    innerText是我們常用的文本清理方法,但是火狐下不兼容,不過(guò)會(huì)提供一個(gè)類(lèi)似的方法叫textContent。

    查看全部
    0 采集 收起 來(lái)源:移除

    2020-05-06

  • 在所有節(jié)點(diǎn)類(lèi)型中,只有DocumentFragment在文檔中沒(méi)有對(duì)應(yīng)的標(biāo)記。DOM規(guī)定文檔片段(documentfragment)是一種“輕量級(jí)”的文檔,可以包含和控制節(jié)點(diǎn),但不會(huì)像完整的文檔那樣占用額外資源。


    即當(dāng)請(qǐng)求把一個(gè) DocumentFragment 節(jié)點(diǎn)插入文檔樹(shù)時(shí),插入的不是 DocumentFragment 自身,而是它的所有子孫節(jié)點(diǎn)。

    查看全部
    0 采集 收起 來(lái)源:文檔碎片DocumentFragment

    2020-05-06

  • jQuery在節(jié)點(diǎn)操作上使用了innerHTML,創(chuàng)建效率上來(lái)說(shuō)至少比createElement快了2-10倍不等,而且還能一次性生成一堆的節(jié)點(diǎn),但是隨之而來(lái)就有一些兼容性問(wèn)題,

    我總結(jié)了有以下幾點(diǎn),當(dāng)然兼容上也結(jié)合了jQuery的解決方案。

    1. ? IE會(huì)對(duì)用戶(hù)字符串進(jìn)行trimLeft操作,用戶(hù)可能的本意就是需要空白

    2. ? IE8有些元素innerHTML是只讀

    3. ? IE會(huì)忽略開(kāi)頭的無(wú)作用域元素

    4. ? 大多情況下不執(zhí)行script腳本,當(dāng)然如果支持defer的IE9之前的瀏覽器除外

    5. ? 一些標(biāo)簽不能作為div的子元素,如tr,tb, col等

    jQuery的節(jié)點(diǎn)操作最終是需要轉(zhuǎn)化成文檔碎片也就是要通過(guò)buildFragment()方法處理的,所以innerHTML兼容的修復(fù)也自然在buildFragment方法中。


    查看全部
    0 采集 收起 來(lái)源:innerHTML的缺陷

    2020-05-06

  • dffkklglg

    查看全部
    0 采集 收起 來(lái)源:遍歷同胞(下)

    2019-09-29

  • jjdkdkkdkd

    查看全部
    0 采集 收起 來(lái)源:遍歷同胞(下)

    2019-09-29

  • 來(lái)來(lái)來(lái)擴(kuò)擴(kuò)擴(kuò)擴(kuò)

    查看全部
    0 采集 收起 來(lái)源:什么是遍歷?

    2019-09-29

  • jquery 源碼
    查看全部
    0 采集 收起 來(lái)源:遍歷祖先

    2019-09-07

  • ?jQuery.each({

    ? ? parent: function(elem) {

    ? ? ? var parent = elem.parentNode;

    ? ? ? return parent && parent.nodeType !== 11 ? parent : null;

    ? ? },

    ? ? parents: function(elem) {

    ? ? ? return dir(elem, "parentNode");

    ? ? },

    ? ? parentsUntil: function(elem, until) {

    ? ? ? return dir(elem, "parentNode", until);

    ? ? }

    ? }, function(name, fn) {

    ? ? ajQuery[name] = function(until, selector) {

    ? ? ? return? fn(until, selector);

    ? ? };

    ? });


    查看全部
  • 接口抽象合并
    查看全部
  • 針對(duì)節(jié)點(diǎn)的操作有幾個(gè)重點(diǎn)的細(xì)節(jié):

    1. 保證最終操作的永遠(yuǎn)是dom元素,瀏覽器的最終API只認(rèn)識(shí)那么幾個(gè)接口,所以如果傳遞是字符串或者其他的,當(dāng)然需要轉(zhuǎn)換

    2. 針對(duì)節(jié)點(diǎn)的大量操作,我們肯定是需要引入文檔碎片做優(yōu)化的,這個(gè)必不可少

    我們知道jQuery的的接口是支持多種參數(shù)傳遞的,那么就需要有一個(gè)過(guò)濾器的中介來(lái)處理各種參數(shù)類(lèi)型。

    細(xì)節(jié):

    1:IE下面innerHTML會(huì)忽略沒(méi)作用域元素,no-scope element(script,link,style,meta,noscript)等,所以這類(lèi)通過(guò)innerHTML創(chuàng)建需要加前綴

    2:innerHTML在IE下面會(huì)對(duì)字符串進(jìn)行trimLeft操作,去掉空白

    3: innerHTML不會(huì)執(zhí)行腳本的代碼,如果支持defer除外

    4:很多標(biāo)簽不能作為div的子元素、td、tr, tbody等等

    5:jQuery是合集對(duì)象,文檔碎片的與事件的復(fù)制問(wèn)題

    ?

    針對(duì)innerHTML不會(huì)執(zhí)行腳本的代碼,如果支持defer除外的解釋?zhuān)?/p>

    div.innerHTML?=?"<script>alert(1)</srcript>"?這個(gè)代碼不會(huì)執(zhí)行

    例外的情況:IE9之前滿(mǎn)足幾個(gè)條件

    1:script設(shè)定defer屬性

    2: script元素必須位于有作用域元素之后,因?yàn)閟cript被認(rèn)為是無(wú)作用域的(頁(yè)面中不可見(jiàn))

    換句話(huà)說(shuō),這樣設(shè)置

    div.innerHTML?=?"<div><script?defer>alert(1)</srcript></div>"??可以執(zhí)行

    jQuery在內(nèi)部通過(guò)會(huì)有一個(gè)domManip方法,把這些問(wèn)題都方方面面處理掉了

    ?

    綜合上面一系列的問(wèn)題,jQuery引入了domManip方法

    原因清楚了,我們?cè)賮?lái)看jQuery是如何處理tbody問(wèn)題,jQuery是兼容IE 6瀏覽器的。append、prepend、before和after都是操作Dom元素的函數(shù),如果被插入的對(duì)象是table,那就要在table中加入tbody標(biāo)簽啊

    所以domManip,主要是處理這個(gè)問(wèn)題的,他還處理插入元素的順序等等

    在結(jié)構(gòu)上首先用extend在原型上拓展了一堆方法,其實(shí)每一個(gè)的實(shí)現(xiàn)都很簡(jiǎn)單,重點(diǎn)就是要看懂domManip的使用??梢灾攸c(diǎn)挑兩個(gè)方法的實(shí)現(xiàn)看一看,不用每個(gè)都看。

    然后就是appendTo和append之類(lèi)的處理,大同小異,因?yàn)閷?shí)現(xiàn)差不多,所以就放在一起了


    查看全部
    0 采集 收起 來(lái)源:深入domManip(上)

    2018-07-18

  • HTML結(jié)構(gòu):

    $('.inner').after('<p>Test</p>');

    $對(duì)象:

    $('.container').after($('h2'));

    回調(diào)函數(shù)

    一個(gè)返回HTML字符串、DOM 元素、 或者 jQuery 對(duì)象的函數(shù),插在每個(gè)匹配元素的后面。接收元素在集合中的索引位置作為參數(shù)。在函數(shù)中this指向元素集合中的當(dāng)前元素:

    .domManip()是jQuery DOM操作的核心函數(shù)。dom即Dom元素,Manip是Manipulate的縮寫(xiě),連在一起就是Dom操作的意思。

    對(duì)封裝的節(jié)點(diǎn)操作做了參數(shù)上的校正支持,與對(duì)應(yīng)處理的調(diào)用:append、prepend、before、after、replaceWith、appendTo、prependTo、insertBefore、insertAfter、replaceAll。

    為什么需要用這個(gè)domManip函數(shù)呢?

    我們知道節(jié)點(diǎn)操作瀏覽器提供的接口無(wú)非就是那么幾個(gè):

    appendChild()

    通過(guò)把一個(gè)節(jié)點(diǎn)增加到當(dāng)前節(jié)點(diǎn)的childNodes[]組,給文檔樹(shù)增加節(jié)點(diǎn):

    cloneNode()

    復(fù)制當(dāng)前節(jié)點(diǎn),或者復(fù)制當(dāng)前節(jié)點(diǎn)以及它的所有子孫節(jié)點(diǎn):

    hasChildNodes()

    如果當(dāng)前節(jié)點(diǎn)擁有子節(jié)點(diǎn),則將返回true:

    insertBefore()

    給文檔樹(shù)插入一個(gè)節(jié)點(diǎn),位置在當(dāng)前節(jié)點(diǎn)的指定子節(jié)點(diǎn)之前。如果該節(jié)點(diǎn)已經(jīng)存在,則刪除之再插入到它的位置:

    removeChild()

    從文檔樹(shù)中刪除并返回指定的子節(jié)點(diǎn):

    replaceChild()

    從文檔樹(shù)中刪除并返回指定的子節(jié)點(diǎn),用另一個(gè)節(jié)點(diǎn)替換它。

    以上接口都有一個(gè)特性,傳入的是一個(gè)節(jié)點(diǎn)元素。如果我們傳遞不是一個(gè)dom節(jié)點(diǎn)元素,如果是一個(gè)字符串,一個(gè)函數(shù)或者其他呢?

    所以針對(duì)所有接口的操作,jQuery會(huì)抽象出一種參數(shù)的處理方案,也就是domManip存在的意義了,針對(duì)很多類(lèi)似接口的參數(shù)抽象jQuery內(nèi)部有很多這樣的函數(shù)了,如之前屬性操作中的jQuery.access。


    查看全部
    0 采集 收起 來(lái)源:節(jié)點(diǎn)操作

    2018-07-18

首頁(yè)上一頁(yè)1234567下一頁(yè)尾頁(yè)

舉報(bào)

0/150
提交
取消
課程須知
源碼的閱讀不是一蹴而就的,需要大家有一定的功底,比如jQuery的基礎(chǔ)運(yùn)用以及API的熟悉度,除此之外要有牢固的javascript、DOM、CSS的基礎(chǔ)功底,甚至還需要理解常見(jiàn)的設(shè)計(jì)模式、數(shù)據(jù)結(jié)構(gòu)等等。當(dāng)然大家也不要被這些給嚇住了,理解,總是需要一種慢慢的學(xué)習(xí)過(guò)程。
老師告訴你能學(xué)到什么?
通過(guò)本課程的學(xué)習(xí),您可以由淺入深地剖析jQuery庫(kù)的設(shè)計(jì)與實(shí)現(xiàn)。 其中我們圍繞的重心: 1、設(shè)計(jì)理念 2、結(jié)構(gòu)組織 3、接口設(shè)計(jì) 4、模式運(yùn)用 5、場(chǎng)景套用

微信掃碼,參與3人拼團(tuán)

微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

友情提示:

您好,此課程屬于遷移課程,您已購(gòu)買(mǎi)該課程,無(wú)需重復(fù)購(gòu)買(mǎi),感謝您對(duì)慕課網(wǎng)的支持!