Rumah > hujung hadapan web > tutorial js > Perbincangan terperinci tentang ini dan $(this)_jquery dalam jQuery

Perbincangan terperinci tentang ini dan $(this)_jquery dalam jQuery

WBOY
Lepaskan: 2016-05-16 16:31:25
asal
1572 orang telah melayarinya

Terdapat banyak pengenalan tentang jQuery ini dan $(ini) di Internet , ini menunjuk kepada objek dom.

Dapat difahami bahawa

$(this) menunjuk ke objek jQuery, tetapi ini menunjuk ke objek dom Ini kerana jQuery telah melakukan pemprosesan khas.

Apabila mencipta objek jQuery dom, jQuery bukan sahaja mencipta objek jQuery untuk dom, tetapi juga menyimpan dom dalam tatasusunan objek yang dicipta.

Salin kod Kod adalah seperti berikut:

elem = document.getElementById(match[2]); jika (elem && elem.parentNode) {
This.length = 1;
ini[0] = elem; }

this.context = dokumen;
this.selector = pemilih; kembalikan ini;



Pernyataan this[0] = elem melaksanakan tatasusunan objek. Jadi JavaScript ialah bahasa yang sangat menarik Apabila menggunakan ini untuk mengakses, anda boleh mengakses fungsi ahli objek yang ditunjuknya, dan sebenarnya ini adalah susunan objek. Ia menyimpan objek dom.
Mari kita lihat $("p").setiap() -- gelung

Salin kod Kod adalah seperti berikut: setiap: fungsi( panggil balik, args ) {
          kembalikan jQuery.each( ini, panggil balik, args ); }  



Selepas membaca panggilan setiap fungsi, anda harus memahami bahawa jQuery.each( ini, panggil balik, args ); Sasaran
Lihat sekali lagi pada $("p").hide() --Fungsi ahli

Salin kod

Kod adalah seperti berikut:

hide: function() { 
        kembalikan showHide( this ); 
    }, 
 function showHide( elements, show ) {var elem, display, 
        nilai = [], 
        indeks = 0, 
        panjang = unsur.panjang; 
    untuk ( ; indeks < panjang; indeks ) { 
        elem = elemen[ indeks ]; 
        jika ( !elem.style ) { 
            teruskan; 
        } 
        values[ index ] = jQuery._data( elem, "olddisplay" ); 
        jika ( tunjukkan ) { 
            // Tetapkan semula paparan sebaris elemen ini untuk mengetahui sama ada ia 
            // disembunyikan oleh peraturan bertingkat atau tidak 
            if ( !values[ index ] && elem.style.display === "tiada" ) { 
                elem.style.display = ""; 
            } 
            // Tetapkan elemen yang telah diganti dengan paparan: tiada 
            // dalam helaian gaya kepada apa sahaja gaya penyemak imbas lalai 
            // untuk elemen sedemikian 
            if ( elem.style.display === "" && isHidden( elem ) ) { 
                values[ index ] = jQuery._data( elem, "olddisplay", css_defaultDisplay(elem.nodeName) ); 
            } 
        } lain { 
            paparan = curCSS( elem, "paparan" ); 
            jika ( !nilai[ indeks ] && paparan !== "tiada" ) { 
                jQuery._data( elem, "olddisplay", paparan ); 
            } 
        } 
    } 
    // Tetapkan paparan kebanyakan elemen dalam gelung kedua 
    // untuk mengelakkan pengaliran semula berterusan 
    untuk ( indeks = 0; indeks < panjang; indeks ) { 
        elem = elemen[ indeks ]; 
        jika ( !elem.style ) { 
            teruskan; 
        } 
        jika ( !show || elem.style.display === "tiada" || elem.style.display === "" ) { 
            elem.style.display = tunjukkan ? nilai[ indeks ] || "" : "tiada"; 
        } 
    } 
    kembali elemen; 

 从上面的代码可以看出hide行数其实调用的是showHide,而传入的第一个参数this,并并不中可一一一一个参数this象数组,因此showHide函数通过循环此对象数组获取每一个dom对象。

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

复制代码 代码如下:

bind: function( jenis, data, fn ) { 
        kembalikan this.on( jenis, nol, data, fn ); 
    }, 

复制代码 代码如下:

pada: fungsi( jenis, pemilih, data, fn, /*DALAMAN*/ satu ) {
// Bahagian kod ini ditinggalkan
           kembalikan ini.setiap( function() {                                          jQuery.event.add( ini, jenis, fn, data, pemilih );          }); 
},


Fungsi bind memanggil fungsi on, dan fungsi on melaksanakan jQuery.event.add melalui setiap fungsi. Oleh itu, ini dalam jQuery.event.add( ini juga objek dom. Jadi dalam acara ini juga objek dom.


Di atas adalah pemahaman peribadi saya tentang ini dan $(this) dalam jQuery Jika anda mempunyai sebarang kesilapan, sila hubungi saya atau tinggalkan mesej kepada saya

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan