Rumah hujung hadapan web tutorial js Jquery绑定事件(bind和live的区别介绍)_jquery

Jquery绑定事件(bind和live的区别介绍)_jquery

May 16, 2016 pm 05:24 PM
bind live

Jquery中绑定事件有三种方法:以click事件为例

(1)target.click(function(){});

(2)target.bind("click",function(){});

(3)target.live("click",function(){});

第一种方法很好理解,其实就和普通JS的用法差不多,只是少了一个on而已

第二、三种方法都是绑定事件,但是二者又有很大的不同,下面着重讲解一下,因为这个如果用到Jquery的框架的话是用的挺多的,尤其要注意二者的区别。

【bind和live的区别】

live方法其实是bind方法的变种,其基本功能就同bind方法的功能是一样的,都是为一个元素绑定某个事件,但是bind方法只能给当前存在的元素绑定事件,对于事后采用JS等方式新生成的元素无效,而live方法则正好弥补了bind方法的这个缺陷,它可以对后生成的元素也可以绑定相应的事件。那么live方法的这个特性是怎么实现的呢?下面来探讨一下其实现原理。

live方法之所以能对后生成的元素也绑定相应的事件的原因归结在“事件委托”上面,所谓“事件委托”就是指绑定在祖先元素上的事件可以在其后代元素上进行使用。live方法的处理机制就是把事件绑定在DOM树的根节点上,而不是直接绑定在某个元素上。举一个例子来说明:

复制代码 代码如下:

$(".clickMe").live("click",fn);
$("body").append("
测试live方法的步骤
");

当我们点击这个新增的元素时会依次发生如下步骤:

(1)生成一个click事件,传递给div来做处理

(2)由于没有事件直接绑定在div上,所以事件直接冒泡到DOM树上

(3)事件不断冒泡,直到DOM树的根节点上,默认情况下,根节点上就绑定了这个click事件

(4)执行由live绑定的click事件

(5)检测绑定事件的对象是否存在,判断是否需要继续执行绑定的事件。检测事件对象是通过检测

$(event.target).closest('.clickMe') 能否找到匹配的元素来实现的。

(6)通过(5)的测试,如果绑定事件的对象存在的话,就执行绑定的事件。

由于只有在事件发生的时候,live方法才会去检测绑定事件的对象是否存在,所以live方法可以实现后来新增的元素也可实现事件的绑定。相比之下,bind会在事件在绑定阶段就会判断绑定事件的元素是否存在,而且只针对当前元素进行绑定,而不是绑定到父节点上。

根据上面的分析,live的好处真是很大,那么为什么还要使用bind方法呢?之所以jquery要保留bind方法而不是采用live方法去替代bind,也是因为live在某些情况下是不能够完全替代bind的。主要的不同如下:

(1)bind方法可以绑定任何JavaScript的事件,而live方法在jQuery1.3的时候只支持click, dblclick, keydown, keypress,keyup,mousedown, mousemove, mouseout, mouseover, 和 mouseup.在jQuery 1.4.1中,甚至也支持 focus 和 blue

事件了(映射到更合适,并且可以冒泡的focusin和focusout上)。另外,在jQuery 1.4.1中,也能支持hover(映射到"mouseenter mouseleave")。

(2)live() 并不完全支持通过DOM遍历的方法找到的元素。取而代之的是,应当总是在一个选择器后面直接使用 .live()方法。

(3)当一个元素采用live方法进行事件的绑定的时候,如果想阻止事件的传递或冒泡,就要在函数中return false,仅仅调用stopPropagation()是无法实现阻止事件的传递或者冒泡的
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

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

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)

Penyelesaian kepada ralat Fatal PHP: Panggilan ke fungsi undefined ldap_bind() Penyelesaian kepada ralat Fatal PHP: Panggilan ke fungsi undefined ldap_bind() Jun 22, 2023 pm 11:37 PM

Apabila membangunkan aplikasi web menggunakan PHP, kita selalunya perlu menggunakan pengesahan LDAP untuk melindungi akses aplikasi. Walau bagaimanapun, dalam beberapa kes, apabila kami cuba menggunakan fungsi LDAP PHP untuk melaksanakan pengesahan, kami mungkin menghadapi mesej ralat berikut: "PHPFatalerror:Calltoundefinedfunctionldap_bind()". Mesej ralat ini biasanya berlaku apabila aplikasi memanggil fungsi ldap_bind().

apa itu linux bind apa itu linux bind Mar 25, 2023 am 09:39 AM

Linux bind ialah perintah yang digunakan untuk memaparkan atau menetapkan kekunci papan kekunci dan fungsi yang berkaitan dengannya Anda boleh menggunakan perintah bind untuk memahami kombinasi kekunci dan fungsi yang mereka ada, dan anda juga boleh menentukan kombinasi kekunci yang akan digunakan ialah "bind [-dlv][ -f <...>][-m <...>][-q <...>]".

Bagaimana untuk membetulkan ralat log masuk Xbox 0x87dd0019 Bagaimana untuk membetulkan ralat log masuk Xbox 0x87dd0019 Mar 22, 2024 pm 02:30 PM

Artikel ini akan membimbing anda untuk membetulkan ralat log masuk Xbox 0x87dd0019, yang menyebabkan isu tamat masa sambungan apabila anda cuba menyambung ke Xbox Live atau log masuk ke Xbox One. Apakah kod ralat 0x87e00019 pada Xbox? Jika anda menemui kod ralat 0x87e00019 semasa memasang atau mengemas kini permainan pada konsol Xbox anda, ini bermakna pemacu keras Xbox anda mungkin kekurangan ruang storan atau hampir penuh. Untuk menyelesaikan masalah ini, anda perlu mengosongkan sedikit ruang storan. Pada masa yang sama, anda juga harus menyemak status perkhidmatan Xbox Live, kerana ralat ini mungkin disebabkan oleh isu pelayan Xbox. Bagaimana untuk membetulkan ralat log masuk Xbox 0x87dd0019 menggunakan petua ini

Apakah yang perlu saya lakukan jika saya tidak boleh log masuk ke xbox live di win10? Win10 tidak boleh log masuk ke xbox live solution Apakah yang perlu saya lakukan jika saya tidak boleh log masuk ke xbox live di win10? Win10 tidak boleh log masuk ke xbox live solution Feb 15, 2024 am 11:51 AM

Xbox ialah pusat perkhidmatan rangkaian Microsoft sendiri Ramai pengguna mendapati komputer Win10 mereka tidak boleh log masuk ke Xbox Live apabila bermain. Biarkan laman web ini dengan teliti memperkenalkan kepada pengguna penyelesaian kepada masalah tidak dapat log masuk ke xboxlive dalam win10. Penyelesaian kepada masalah tidak dapat log masuk ke xboxlive dalam Windows 10: 1. Buka tetingkap jalankan dengan kekunci pintasan "win+R", masukkan "services.msc", dan tekan Enter untuk membukanya. 2. Selepas memasuki antara muka tetingkap "Perkhidmatan", cari "Pengurus Pengesahan xboxlive" di sebelah kanan dan klik dua kali untuk membukanya.

Pelaksanaan dan penggunaan bind dalam JS Pelaksanaan dan penggunaan bind dalam JS Feb 24, 2024 pm 01:33 PM

Pelaksanaan dan penggunaan bind dalam JS Dalam JavaScript, bind ialah kaedah fungsi yang sangat berguna. Ia boleh mencipta fungsi baharu, sambil memastikan bahawa apabila fungsi dipanggil, ia mempunyai nilai ini khusus dan boleh melepasi parameter yang ditentukan. Kaedah bind ditakrifkan seperti berikut: functionbind(fn,obj,...args){returnfunction(...args2){return

Ralat 0x87e107d1 semasa memuat turun kandungan Xbox Ralat 0x87e107d1 semasa memuat turun kandungan Xbox Feb 22, 2024 am 09:50 AM

Apabila anda menemui kod ralat 0x87e107d1 semasa memuat turun kandungan Xbox pada konsol anda, anda mungkin memerlukan beberapa langkah untuk menyelesaikan isu tersebut. Biasanya, ralat ini muncul apabila pengguna cuba memuat turun kandungan ke konsol permainan Xbox mereka. Seterusnya, kami akan meneroka beberapa cara untuk menyelesaikan isu ini dan memastikan anda berjaya memuat turun kandungan yang anda perlukan. Betulkan Ralat 0x87e107d1 Semasa Memuat Turun Kandungan Xbox Jika ralat 0x87e107d1 berlaku semasa memuat turun kandungan Xbox, gunakan pembetulan berikut untuk menyelesaikan isu tersebut. Semak status perkhidmatan XboxLive Semak sambungan Internet anda Matikan dan hidupkan konsol Xbox anda sekali lagi Cuba muat turun kandungan sekali lagi Padam dan tambah profil anda Mari mulakan. 1] Semak Xbox

Adakah perdana bermaksud hidup? Adakah perdana bermaksud hidup? Apr 04, 2025 am 12:07 AM

"Premiere" dan "Live" mempunyai makna yang berbeza dalam pengeluaran video: "Premiere" merujuk kepada pelepasan pertama atau perdana, sementara "Live" merujuk kepada siaran langsung dalam masa nyata. 1. "Premiere" adalah paparan pertama kandungan pra-rakaman. 2. Menubuhkan perdana di Adobe Premierepro melibatkan penyuntingan, penyuntingan, dan rendering, dan kemudian menjadualkan masa perdana. 3. Gunakan skrip python untuk menjadualkan perdana video. 4. Langkah -langkah utama termasuk mengeksport tetapan, penyegerakan masa dan ujian pratonton. 5. Cabaran termasuk isu prestasi, pengurusan masa, dan keserasian platform.

Audio Chat Parti Xbox Mengganggu atau Tidak Berfungsi [Betulkan] Audio Chat Parti Xbox Mengganggu atau Tidak Berfungsi [Betulkan] Feb 19, 2024 am 11:18 AM

Jika anda menghadapi masalah dengan audio sembang terputus atau tidak berfungsi semasa menggunakan Xbox Party, ia mungkin disebabkan oleh sambungan Internet yang tidak stabil atau kegagalan perkhidmatan Xbox Live. Artikel ini akan membantu anda menyelesaikan masalah ini dan memastikan anda boleh menjalankan sembang permainan Xbox Party dengan lancar. Betulkan audio Xbox Party Chat terputus atau tidak berfungsi Gunakan pembaikan ini untuk membaiki pemotongan audio Xbox Party Chat atau tidak berfungsi: Semak status perkhidmatan XboxLive Semak sambungan internet anda Matikan dan hidupkan konsol Xbox anda sekali lagi Semak jenis NAT anda Keluar dan sertai semula parti Tetapkan Semula Kilang konsol Xbox anda dan mari mulakan. 1] Semak status perkhidmatan XboxLive dan teruskan penyelesaian masalah

See all articles