首頁 > web前端 > js教程 > jQuery阻止同類型事件小結_jquery

jQuery阻止同類型事件小結_jquery

WBOY
發布: 2016-05-16 17:36:08
原創
1081 人瀏覽過
複製代碼 代碼如下:




test










在上面的HTML中,red元素是green元素的父親元素。
複製程式碼 程式碼如下:

$(function(){


$(function(){
$(" #green").click(function(event){
alert("green click1");
});
$("#green").click(function(event){
alert("green click2");
});
$("#red").click(function(event){
alert("red click");
});
});


上面的js程式碼為red元素和green元素增加了三個click事件。
點擊子元素green元素時,會依序執行green click1、green click2、red click事件。
事件追加:點選green元素會依序執行green click1、green click2兩個事件(同一元素的同類型事件)。
事件冒泡:點選green元素會觸發父元素的red click事件(父級元素的同類型事件)。
1、 在子元素事件函數中阻止事件冒泡方法1:event.stopPropagation() 複製代碼

程式碼如下:


$(function(){
$("#green").click(function(event){
event.stopPropagation();
alert("green click");
});
$("#red").click(function(event){
alert("red click");
});
});
方法2:return false 複製程式碼


複製程式碼



複製程式碼



複製程式碼



複製程式碼

複製程式碼複製程式碼

複製碼>

$(function(){
$("#green").click(function(event){
alert("green click");
return false;
});
$("#red").click(function(event){
alert("red click");
});
});

透過上面的兩種方法,點擊子元素green區域後,red click事件被阻止不再執行。但不會影響red元素其他區域的點擊。
二者區別:
return false相當於event.preventDefault() event.stopPropagation()。
2、 在父元素事件函數中阻止事件冒泡 程式碼如下:



程式碼如下:



程式碼如下:


程式碼如下:
$(function(){ $("#green").click(function(event){ alert("green click"); }); $(" #red").click(function(event){ if(event.target == this) { alert("red click"); } }); }); 透過if(event.target== this)判斷點擊的目標元素是不是red元素本身,如果不是red本身而是它的子元素green元素,則不會執行if內的程式碼。 3、 阻止事件追加 以上的方法只能阻止事件冒泡(也就是父級元素的同類型事件),但不能阻止事件追加(同一元素的同類型事件)。 複製程式碼 程式碼如下: $(function(){ $(function(){ $(" #green").click(function(event){ event.stopImmediatePropagation(); alert("green click"); }); $("#green").click (function(){ alert("green click2"); }); }); event.stopImmediatePropagation()不但可以阻止green click2事件,同時阻止green click2事件,同時阻止green click2事件,同時阻止green click2事件,同時阻止green click2事件,同時阻止green click2事件,同時阻止也阻止事件冒泡。
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板