然而,在今天一些大型的WEB交互项目中,比如大型的WebGame项目,JavaScript事件冒泡影响是值得重视的。本文通过一个简单的例子来讲解JavaScript事件冒泡及使用注意事项。
如果你对JavaScript事件冒泡还没有什么印象,不妨先看看我之前写的一篇博客《JavaScript事件冒泡简介及应用》。本文讲究实用,不在对JavaScript事件冒泡基础知识进行过多的阐述。
在文章开始之前,现在先看看下面这样一个需求:下面HTML假设描述的是一个WebGame项目包裹栏(玩过网游的人应该知道什么是包裹栏或物品栏)的外框架,拖动这个包裹标题栏可以拖动这个包裹到页面上任何位置,而点击标题栏右侧的“×”关闭按钮可以关闭这个包裹栏的显示。你通过观察HTML结构,可以发现那个关闭按钮其实是一个A链接,而且是作为标题栏H5的子元素存在。要想拖动一个元素,我们会想到向拖动的句柄元素注册mousedown事件,而点击或“单击”关闭按钮就关闭这个包裹。根据这个需求,我们很快得到下面这样的代码。
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
在上面的例子中,你发现点击关闭按钮的时候,标题栏的mousedown事件也触发了,显然这是在你意料之中的,因为你知道这正是JavaScript事件冒泡在起作用。其实你真正要的效果是点关闭按钮的时候,不要执行标题H5注册的mousedown事件,于是你想到了阻止事件冒泡,接着代码修改成下面这样:
结果你发现单击关闭按钮的时候,标题H5注册的mousedown事件还是执行了,这是怎么回事呢?其实细心的你可能发现,H5标题和A链接注册的事件不是一样的,在上面的代码中,我们在A链接注册的click事件中调用阻止事件方法,这只是意味着其父元素注册的“同类事件”不会执行,意思是说如果H5标题也注册了click事件,这个click事件不会执行,而这里的mousedown就继续执行了。这里的mousedown执行不是因为你点中标题栏而发生的,是由于你在单击click的时候伴随产生mousedown事件,然后又由于JavaScript事件冒泡机制的存在,事件向父级广播并被H5标题mousedown注册方法捕获。关于对这点的理解,可以参考我另外一篇博客《当onmousedown、onmouseup、onclick同时应用于同一个标签节点Element》。现在,通过分析,你应该知道怎么做了,小改上面的代码,只要把A链接的click事件改成与H5标题一样的mousedown事件,你想要的效果就实现了。
相关话题:
现在讲讲如何在使用jQuery开发时轻松阻止事件冒泡。jQuery作为一个优秀的脚本框架,对事件的封装及浏览器兼容处理自然也是很出众的。想了解更多也可阅读我的另外一篇博客《利用jQuery的$.event.fix函数统一浏览器event处理》。
使用jQuery要想阻止事件冒泡方法有二:
1、利用jQuery做过兼容处理的event对象,直接使用event.preventDefault(),举例代码如下:
2、在jQuery绑定的函数中返回false,即return false。注意:不是使用jQuery绑定的方法返回false是没有用的。代码如下:
最后还要说明一下,利用第二个方法阻止事件冒泡,同时也阻止了浏览器的默认行为,在jQuery事件处理的源代码的handle方法中(jQuery JavaScript Library v1.3.2非压缩代码2700行)我们可以看到向下面这样的处理,event.preventDefault()用于阻止浏览器默认行为。
handle : function(event)
{
//other code......
if (ret === false)
{
event.preventDefault();
event.stopPropagation();
}
//other code......
}
作者:WebFlash

Perbezaan utama antara Python dan JavaScript ialah sistem jenis dan senario aplikasi. 1. Python menggunakan jenis dinamik, sesuai untuk pengkomputeran saintifik dan analisis data. 2. JavaScript mengamalkan jenis yang lemah dan digunakan secara meluas dalam pembangunan depan dan stack penuh. Kedua -duanya mempunyai kelebihan mereka sendiri dalam pengaturcaraan dan pengoptimuman prestasi yang tidak segerak, dan harus diputuskan mengikut keperluan projek ketika memilih.

Sama ada untuk memilih Python atau JavaScript bergantung kepada jenis projek: 1) Pilih Python untuk Sains Data dan Tugas Automasi; 2) Pilih JavaScript untuk pembangunan front-end dan penuh. Python disukai untuk perpustakaannya yang kuat dalam pemprosesan data dan automasi, sementara JavaScript sangat diperlukan untuk kelebihannya dalam interaksi web dan pembangunan stack penuh.

Python dan JavaScript masing -masing mempunyai kelebihan mereka sendiri, dan pilihan bergantung kepada keperluan projek dan keutamaan peribadi. 1. Python mudah dipelajari, dengan sintaks ringkas, sesuai untuk sains data dan pembangunan back-end, tetapi mempunyai kelajuan pelaksanaan yang perlahan. 2. JavaScript berada di mana-mana dalam pembangunan front-end dan mempunyai keupayaan pengaturcaraan tak segerak yang kuat. Node.js menjadikannya sesuai untuk pembangunan penuh, tetapi sintaks mungkin rumit dan rawan kesilapan.

Javascriptisnotbuiltoncorc; it'saninterpretedlanguagethatrunsonenginesoftenwritteninc .1) javascriptwasdesignedasalightweight, interpratedlanguageforwebbrowsers.2)

JavaScript boleh digunakan untuk pembangunan front-end dan back-end. Bahagian depan meningkatkan pengalaman pengguna melalui operasi DOM, dan back-end mengendalikan tugas pelayan melalui Node.js. 1. Contoh front-end: Tukar kandungan teks laman web. 2. Contoh backend: Buat pelayan Node.js.

Memilih Python atau JavaScript harus berdasarkan perkembangan kerjaya, keluk pembelajaran dan ekosistem: 1) Pembangunan Kerjaya: Python sesuai untuk sains data dan pembangunan back-end, sementara JavaScript sesuai untuk pembangunan depan dan penuh. 2) Kurva Pembelajaran: Sintaks Python adalah ringkas dan sesuai untuk pemula; Sintaks JavaScript adalah fleksibel. 3) Ekosistem: Python mempunyai perpustakaan pengkomputeran saintifik yang kaya, dan JavaScript mempunyai rangka kerja front-end yang kuat.

Kuasa rangka kerja JavaScript terletak pada pembangunan yang memudahkan, meningkatkan pengalaman pengguna dan prestasi aplikasi. Apabila memilih rangka kerja, pertimbangkan: 1.

Pengenalan Saya tahu anda mungkin merasa pelik, apa sebenarnya yang perlu dilakukan oleh JavaScript, C dan penyemak imbas? Mereka seolah -olah tidak berkaitan, tetapi sebenarnya, mereka memainkan peranan yang sangat penting dalam pembangunan web moden. Hari ini kita akan membincangkan hubungan rapat antara ketiga -tiga ini. Melalui artikel ini, anda akan mempelajari bagaimana JavaScript berjalan dalam penyemak imbas, peranan C dalam enjin pelayar, dan bagaimana mereka bekerjasama untuk memacu rendering dan interaksi laman web. Kita semua tahu hubungan antara JavaScript dan penyemak imbas. JavaScript adalah bahasa utama pembangunan front-end. Ia berjalan secara langsung di penyemak imbas, menjadikan laman web jelas dan menarik. Adakah anda pernah tertanya -tanya mengapa Javascr


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

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

Artikel Panas

Alat panas

mPDF
mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

VSCode Windows 64-bit Muat Turun
Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

MantisBT
Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa
