<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        詳談jQuery中的this和$(this)_jquery

        來源:懂視網 責編:小采 時間:2020-11-27 21:28:49
        文檔

        詳談jQuery中的this和$(this)_jquery

        詳談jQuery中的this和$(this)_jquery:網上有很多關于jQuery的this和$(this)的介紹,大多數只是理清了this和$(this)的指向,其實它是有應用場所的,不能一概而論在jQuery調用成員函數時,this就是指向dom對象。 $(this)指向jQuery對象是無可厚非的,但this就是指向dom對象,這個是因為jQ
        推薦度:
        導讀詳談jQuery中的this和$(this)_jquery:網上有很多關于jQuery的this和$(this)的介紹,大多數只是理清了this和$(this)的指向,其實它是有應用場所的,不能一概而論在jQuery調用成員函數時,this就是指向dom對象。 $(this)指向jQuery對象是無可厚非的,但this就是指向dom對象,這個是因為jQ

        網上有很多關于jQuery的this和$(this)的介紹,大多數只是理清了this和$(this)的指向,其實它是有應用場所的,不能一概而論在jQuery調用成員函數時,this就是指向dom對象。

        $(this)指向jQuery對象是無可厚非的,但this就是指向dom對象,這個是因為jQuery做了特殊的處理。 

        在創建dom的jQuery對象時,jQuery不僅僅為dom創建一個jQuery對象,而且還將dom存儲在所創建對象的數組中。

        代碼如下:
        elem = document.getElementById(match[2]);
        if (elem && elem.parentNode) {
        this.length = 1;
        this[0] = elem;
        }

        this.context = document;
        this.selector = selector;
        return this;

        this[0] = elem這條語句就是實現對象數組。所以javascript是很有意思的語言,使用this訪問時,可以訪問它所指向的對象的成員函數,而其實this又是一個對象數組。其存放的是dom對象。

        先看看 $("p").each() -- 循環

        代碼如下:
        each: function( callback, args ) {
        return jQuery.each( this, callback, args );
        }

        看了each函數的調用大家應該明白,jQuery.each( this, callback, args );調用的是對象數組,而對象的數組存儲的是dom對象,因此在callback函數中的this自然是dom對象了

        再看看$("p").hide() -- 成員函數

        代碼如下:
        hide: function() {
        return showHide( this );
        },
        function showHide( elements, show ) {var elem, display,
        values = [],
        index = 0,
        length = elements.length;
        for ( ; index < length; index++ ) {
        elem = elements[ index ];
        if ( !elem.style ) {
        continue;
        }
        values[ index ] = jQuery._data( elem, "olddisplay" );
        if ( show ) {
        // Reset the inline display of this element to learn if it is
        // being hidden by cascaded rules or not
        if ( !values[ index ] && elem.style.display === "none" ) {
        elem.style.display = "";
        }
        // Set elements which have been overridden with display: none
        // in a stylesheet to whatever the default browser style is
        // for such an element
        if ( elem.style.display === "" && isHidden( elem ) ) {
        values[ index ] = jQuery._data( elem, "olddisplay", css_defaultDisplay(elem.nodeName) );
        }
        } else {
        display = curCSS( elem, "display" );
        if ( !values[ index ] && display !== "none" ) {
        jQuery._data( elem, "olddisplay", display );
        }
        }
        }
        // Set the display of most of the elements in a second loop
        // to avoid the constant reflow
        for ( index = 0; index < length; index++ ) {
        elem = elements[ index ];
        if ( !elem.style ) {
        continue;
        }
        if ( !show || elem.style.display === "none" || elem.style.display === "" ) {
        elem.style.display = show ? values[ index ] || "" : "none";
        }
        }
        return elements;
        }

        從上面的代碼可以看出hide行數其實調用的是showHide,而傳入的第一個參數this,并不是dom對象,而是jQuery對象數組,因此showHide函數通過循環此對象數組獲取每一個dom對象。

        最后看看$("p").bind() -- 事件

        代碼如下:
        bind: function( types, data, fn ) {
        return this.on( types, null, data, fn );
        },

        代碼如下:
        on: function( types, selector, data, fn, /*INTERNAL*/ one ) {
        // 此部分代碼省略
        return this.each( function() {
        jQuery.event.add( this, types, fn, data, selector );
        });
        },

        bind函數調用的是 on函數,而on函數又是通過 each函數實現了jQuery.event.add。因此 jQuery.event.add( this中的this也就是dom對象了。所以事件中的this也就是dom對象了。

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        詳談jQuery中的this和$(this)_jquery

        詳談jQuery中的this和$(this)_jquery:網上有很多關于jQuery的this和$(this)的介紹,大多數只是理清了this和$(this)的指向,其實它是有應用場所的,不能一概而論在jQuery調用成員函數時,this就是指向dom對象。 $(this)指向jQuery對象是無可厚非的,但this就是指向dom對象,這個是因為jQ
        推薦度:
        標簽: thi this jQuery
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 免费**毛片在线播放直播| 一级毛片试看60分钟免费播放| 亚洲综合中文字幕无线码| 99久久国产免费-99久久国产免费| 久久久久久久尹人综合网亚洲 | 亚洲首页国产精品丝袜| 一色屋成人免费精品网站| 亚洲国产精品综合久久久| 免费精品国产自产拍在 | 黄+色+性+人免费| 婷婷亚洲久悠悠色悠在线播放| 成人片黄网站色大片免费观看APP| 亚洲午夜国产精品无码| 玖玖在线免费视频| 亚洲理论片在线观看| 亚洲免费在线视频播放| 在线观看亚洲AV日韩AV| 免费一级国产生活片| 久久久WWW免费人成精品| 久久久久久亚洲精品中文字幕| 四虎国产精品永久免费网址| 91亚洲视频在线观看| 四虎影视免费在线| 国产高潮久久免费观看| 91亚洲精品第一综合不卡播放| 91免费精品国自产拍在线不卡| 成a人片亚洲日本久久| 亚洲精品成人无限看| 69成人免费视频| 免费福利资源站在线视频| 亚洲AV无码一区二区三区系列| 无码日韩人妻av一区免费| 日韩在线观看免费| 97视频免费在线| 久久久精品国产亚洲成人满18免费网站| 精品国产免费一区二区| 亚洲AV色无码乱码在线观看| 亚洲无人区一区二区三区| 久久久高清免费视频| 污视频网站免费观看| 亚洲精品成人久久|