Rumah hujung hadapan web tutorial js Penjelasan terperinci tentang acara jQuery mengikat pada(), mengikat() dan mewakilkan() kaedah_jquery

Penjelasan terperinci tentang acara jQuery mengikat pada(), mengikat() dan mewakilkan() kaedah_jquery

May 16, 2016 pm 03:56 PM
jquery mengikat acara

Saya telah mempelajari js untuk seketika dalam proses pembelajaran, saya mendapati bahawa apabila mengikat acara dalam jQuery, sesetengah orang menggunakan bind(), ada yang menggunakan on(), ada yang menggunakan delegate(), dan ada yang menggunakan live. (). Apabila saya melihat kod itu, saya merasakan bahawa fungsi telah dilaksanakan, jadi saya lulus tetapi saya masih tidak memahami sepenuhnya perbezaan antara mereka, jadi saya menyemak maklumat itu hari ini dan membuat ringkasan sendiri. .

Sebab mengapa terdapat begitu banyak jenis kaedah pengikatan adalah kerana versi jQuery dikemas kini Sebagai contoh, kaedah on() muncul selepas 1.7.

Pada halaman api mengikat acara jQuery, disebutkan bahawa kaedah live() sudah lapuk dan tidak disyorkan untuk digunakan. Jadi di sini kita terutamanya melihat tiga kaedah berikut: bind(), delegate(), on()

Kami menyediakan halaman html untuk menguji pelbagai jenis pengikatan acara.

<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
</head>
<body>
<div>
  <button id="btn">添加新的p元素</button>
  <p>第一个p元素</p>
  <p>第二个p元素</p>
  <p>第三个p元素</p>
  <p>第四个p元素</p>
  <p>第五个p元素</p>
</div>

<script>
$("#btn").click(function(){
  $("div").append("<p>这是一个新的p元素</p>");
});
</script>

</body>
</html>
Salin selepas log masuk

Halaman ringkas dengan div, beberapa elemen p dan butang di dalam div Klik butang untuk menambah elemen p. Seterusnya kita akan mengikat acara klik pada elemen p pada halaman.

ikat()

Penggunaan

Salin kod Kod adalah seperti berikut:

$("div p").bind("klik", fungsi () {
alert($(this).text());
})

Dengan cara ini, acara klik terikat kepada semua elemen p dalam div, dan responsnya adalah untuk memunculkan kandungannya. Pengikatan adalah mudah dan pantas, tetapi terdapat dua masalah di sini:
Soalan pertama ialah kaedah lelaran tersirat digunakan di sini Jika terdapat terlalu banyak elemen yang sepadan, contohnya, jika saya meletakkan 50 p elemen dalam div, saya perlu melakukan pengikatan 50 kali. Untuk sejumlah besar elemen, prestasi terjejas.
Tetapi jika ia adalah pemilih id, kerana id itu unik, ia adalah sangat pantas untuk menggunakan kaedah bind().
Masalah kedua ialah unsur-unsur yang belum wujud tidak boleh terikat. Mengklik butang pada halaman akan menambah elemen p secara dinamik Jika anda mengklik pada elemen p ini, anda akan mendapati tiada tindak balas tindakan.
Kedua-dua masalah ini boleh diselesaikan menggunakan kaedah perwakilan.

Selain itu, terdapat singkatan untuk kaedah bind() Kod di atas juga boleh digantikan dengan:

Salin kod Kod adalah seperti berikut:

$("div p").klik(fungsi () {
alert($(this).text());
})

wakilkan()

Penggunaan

Salin kod Kod adalah seperti berikut:

$("div").delegate("p", "klik", fungsi () {
alert($(this).text());
});

Pendekatan ini menggunakan konsep delegasi acara. Daripada mengikat peristiwa secara terus kepada elemen p, ikat peristiwa kepada elemen induknya (atau elemen nenek moyang juga Apabila anda mengklik pada mana-mana elemen dalam div, acara itu akan menggelembung dari lapisan sasaran acara demi lapisan sehingga ia mencapai The elemen yang anda mengikat acara, seperti elemen div dalam contoh ini. Semasa proses menggelegak, jika Target semasa acara sepadan dengan pemilih, kod akan dilaksanakan.

Ini menyelesaikan dua masalah di atas menggunakan kaedah bind() Tidak perlu mengikat peristiwa pada elemen p satu demi satu. Anda juga boleh mengikat elemen p yang ditambah secara dinamik. Walaupun anda mengikat acara pada dokumen, anda tidak perlu menunggu dokumen itu bersedia untuk melaksanakan pengikatan.

Dengan cara ini, mengikat adalah mudah, tetapi masalah juga mungkin berlaku semasa membuat panggilan. Jika sasaran acara berada sangat dalam dalam pepohon DOM, menggelegak lapisan demi lapisan untuk mencari elemen yang sepadan dengan pemilih akan menjejaskan prestasi.

pada()

on() sebenarnya menyatukan kaedah peristiwa mengikat sebelumnya Melihat pada kod sumber jQuery yang tidak dimampatkan (versi yang saya lihat di sini ialah 1.11.3), anda boleh mendapati bahawa kedua-dua bind() dan delegate() sebenarnya. Apa yang dicapai melalui kaedah on() hanyalah parameternya berbeza.

Salin kod Kod adalah seperti berikut:

bind: Funktion( Typen, Daten, Fn) {
Gibt this.on(types, null, data, fn );
zurück },
unbind: function(types, fn) {
Gibt this.off(types, null, fn );
zurück },
Delegat: Funktion(Selektor, Typen, Daten, Fn) {
Gibt this.on(types, selector, data, fn );
zurück }
​ Undelegate: Funktion(Selektor, Typen, Fn) {
// (Namespace) oder (Selektor, Typen [, fn])
Return arguments.length === 1 ? this.off( selector, "**" ): this.off(types, selector || "**", fn );
}

Im obigen Beispiel kann on() wie folgt zum Binden verwendet werden:

Code kopieren Der Code lautet wie folgt:

$("div").on("click","p",function(){
alarm($(this).text());
})

Offizieller Dokumentationsvorschlag:


Ab jQuery 1.7 ist die .on()-Methode die bevorzugte Methode zum Anhängen von Event-Handlern an ein Dokument.

Versuchen Sie, on() zum Binden von Ereignissen zu verwenden.

Ereignis entfernen

entspricht den Bindungsmethoden bind(), delegate() und on(), und die Methoden zum Entfernen von Ereignissen sind:

Code kopieren Der Code lautet wie folgt:

$( "div p" ).unbind( "click", handler );
$( "div" ).undelegate( "p", "click", handler );
$( "div" ).off( "click", "p", handler );

Zusätzlich zum Entfernen der angegebenen Ereignisbindung wie oben können Sie auch alle Ereignisbindungen entfernen, ohne sie einzeln aufzulisten. Die offizielle Dokumentation von jQuery ist sehr detailliert.

Zusammenfassung

1. Wenn viele Elemente mit dem Selektor übereinstimmen, verwenden Sie bind() nicht, um

iterativ zu binden

2. Wenn Sie den ID-Selektor verwenden, können Sie bind()

verwenden

3. Wenn Sie dynamisch hinzugefügte Elemente binden müssen, verwenden Sie „delegate()“ oder „on()“

4. Verwenden Sie die Methoden „delegate()“ und „on()“, und der DOM-Baum sollte nicht zu tief sein

5. Versuchen Sie, on()
zu verwenden

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er gefällt Ihnen allen.

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Penjelasan terperinci kaedah rujukan jQuery: Panduan permulaan cepat Penjelasan terperinci kaedah rujukan jQuery: Panduan permulaan cepat Feb 27, 2024 pm 06:45 PM

Penjelasan terperinci kaedah rujukan jQuery: Panduan Mula Pantas jQuery ialah perpustakaan JavaScript yang popular yang digunakan secara meluas dalam pembangunan tapak web Ia memudahkan pengaturcaraan JavaScript dan menyediakan pemaju dengan fungsi dan ciri yang kaya. Artikel ini akan memperkenalkan kaedah rujukan jQuery secara terperinci dan menyediakan contoh kod khusus untuk membantu pembaca bermula dengan cepat. Memperkenalkan jQuery Pertama, kita perlu memperkenalkan perpustakaan jQuery ke dalam fail HTML. Ia boleh diperkenalkan melalui pautan CDN atau dimuat turun

Bagaimana untuk menggunakan kaedah permintaan PUT dalam jQuery? Bagaimana untuk menggunakan kaedah permintaan PUT dalam jQuery? Feb 28, 2024 pm 03:12 PM

Bagaimana untuk menggunakan kaedah permintaan PUT dalam jQuery? Dalam jQuery, kaedah menghantar permintaan PUT adalah serupa dengan menghantar jenis permintaan lain, tetapi anda perlu memberi perhatian kepada beberapa butiran dan tetapan parameter. Permintaan PUT biasanya digunakan untuk mengemas kini sumber, seperti mengemas kini data dalam pangkalan data atau mengemas kini fail pada pelayan. Berikut ialah contoh kod khusus menggunakan kaedah permintaan PUT dalam jQuery. Mula-mula, pastikan anda memasukkan fail perpustakaan jQuery, kemudian anda boleh menghantar permintaan PUT melalui: $.ajax({u

Analisis mendalam: kelebihan dan kekurangan jQuery Analisis mendalam: kelebihan dan kekurangan jQuery Feb 27, 2024 pm 05:18 PM

jQuery ialah perpustakaan JavaScript yang pantas, kecil dan kaya dengan ciri yang digunakan secara meluas dalam pembangunan bahagian hadapan. Sejak dikeluarkan pada tahun 2006, jQuery telah menjadi salah satu alat pilihan untuk banyak pembangun, tetapi dalam aplikasi praktikal, ia juga mempunyai beberapa kelebihan dan kekurangan. Artikel ini akan menyediakan analisis mendalam tentang kelebihan dan kekurangan jQuery dan menggambarkannya dengan contoh kod khusus. Kelebihan: 1. Sintaks ringkas Reka bentuk sintaks jQuery adalah ringkas dan jelas, yang boleh meningkatkan kebolehbacaan dan kecekapan menulis kod. sebagai contoh,

Bagaimana untuk mengalih keluar atribut ketinggian elemen dengan jQuery? Bagaimana untuk mengalih keluar atribut ketinggian elemen dengan jQuery? Feb 28, 2024 am 08:39 AM

Bagaimana untuk mengalih keluar atribut ketinggian elemen dengan jQuery? Dalam pembangunan bahagian hadapan, kita sering menghadapi keperluan untuk memanipulasi atribut ketinggian elemen. Kadangkala, kita mungkin perlu menukar ketinggian unsur secara dinamik, dan kadangkala kita perlu mengalih keluar atribut ketinggian unsur. Artikel ini akan memperkenalkan cara menggunakan jQuery untuk mengalih keluar atribut ketinggian elemen dan memberikan contoh kod khusus. Sebelum menggunakan jQuery untuk mengendalikan atribut ketinggian, kita perlu terlebih dahulu memahami atribut ketinggian dalam CSS. Atribut ketinggian digunakan untuk menetapkan ketinggian elemen

Petua jQuery: Cepat ubah suai teks semua teg pada halaman Petua jQuery: Cepat ubah suai teks semua teg pada halaman Feb 28, 2024 pm 09:06 PM

Tajuk: Petua jQuery: Cepat ubah suai teks semua teg pada halaman Dalam pembangunan web, kita selalunya perlu mengubah suai dan mengendalikan elemen pada halaman. Apabila menggunakan jQuery, kadangkala anda perlu mengubah suai kandungan teks semua teg dalam halaman sekaligus, yang boleh menjimatkan masa dan tenaga. Berikut akan memperkenalkan cara menggunakan jQuery untuk mengubah suai teks semua teg pada halaman dengan cepat, dan memberikan contoh kod khusus. Pertama, kita perlu memperkenalkan fail perpustakaan jQuery dan memastikan bahawa kod berikut dimasukkan ke dalam halaman: &lt

Gunakan jQuery untuk mengubah suai kandungan teks semua teg Gunakan jQuery untuk mengubah suai kandungan teks semua teg Feb 28, 2024 pm 05:42 PM

Tajuk: Gunakan jQuery untuk mengubah suai kandungan teks semua teg jQuery ialah perpustakaan JavaScript yang popular yang digunakan secara meluas untuk mengendalikan operasi DOM. Dalam pembangunan web, kita sering menghadapi keperluan untuk mengubah suai kandungan teks tag pautan (tag) pada halaman. Artikel ini akan menerangkan cara menggunakan jQuery untuk mencapai matlamat ini dan memberikan contoh kod khusus. Pertama, kita perlu memperkenalkan perpustakaan jQuery ke dalam halaman. Tambahkan kod berikut dalam fail HTML:

Fahami peranan dan senario aplikasi eq dalam jQuery Fahami peranan dan senario aplikasi eq dalam jQuery Feb 28, 2024 pm 01:15 PM

jQuery ialah perpustakaan JavaScript popular yang digunakan secara meluas untuk mengendalikan manipulasi DOM dan pengendalian acara dalam halaman web. Dalam jQuery, kaedah eq() digunakan untuk memilih elemen pada kedudukan indeks tertentu Senario penggunaan dan aplikasi khusus adalah seperti berikut. Dalam jQuery, kaedah eq() memilih elemen pada kedudukan indeks yang ditentukan. Kedudukan indeks mula dikira dari 0, iaitu indeks elemen pertama ialah 0, indeks elemen kedua ialah 1, dan seterusnya. Sintaks kaedah eq() adalah seperti berikut: $("s

Bagaimana untuk mengetahui sama ada elemen jQuery mempunyai atribut tertentu? Bagaimana untuk mengetahui sama ada elemen jQuery mempunyai atribut tertentu? Feb 29, 2024 am 09:03 AM

Bagaimana untuk mengetahui sama ada elemen jQuery mempunyai atribut tertentu? Apabila menggunakan jQuery untuk mengendalikan elemen DOM, anda sering menghadapi situasi di mana anda perlu menentukan sama ada sesuatu elemen mempunyai atribut tertentu. Dalam kes ini, kita boleh melaksanakan fungsi ini dengan mudah dengan bantuan kaedah yang disediakan oleh jQuery. Berikut akan memperkenalkan dua kaedah yang biasa digunakan untuk menentukan sama ada elemen jQuery mempunyai atribut khusus, dan melampirkan contoh kod tertentu. Kaedah 1: Gunakan kaedah attr() dan operator jenis // untuk menentukan sama ada elemen mempunyai atribut tertentu

See all articles