今天將和大家一起討論下Jquery event handle,(事件處理),瞭解事件處理機制有助於我們更好的運用Jquery進行編程,更靈活的處理我們的要處理的內容和簡化我的的事件處理代碼,來了解下JQuery的simple event handle mechanism(簡單事件處理機制)
小試身手:
$(function(){
var v1=$("body").children();
alert(v1);
alert(v1[3].innerHTML)
});
jquery對象和DOM對象簡單的轉換
$("p").next();//獲取p元素同輩的下一個元素 $("p").prev();//獲取p元素同輩的上一個元素
var p1=$("p").sibliings();//獲取p元素的上下兄弟元素
p1.length;//在這裏是jquery對象
p1[1].length;//在這裏jquery對象已經轉換成了DOM對象
事件處理機制
先講解下 IE的 事件冒泡處理機制
對於IE的事件處理的執行都是由下往上尋找對象的事件處理
比如:如果我們在頁面上有一個嵌套的div層,當我們點擊裏面的div層的時候,在沒有阻止事件的傳播的時候,我 們點擊裏面的div層,其實觸發了兩個click事件,因此會引發兩次的事件處理機制
jquery中如果阻止事件的傳播
$(("p").bind("click",function(event){
alert("show");
event.stopPropagation();//停止事件的傳播,事件處理到這裏將結束,不管這個元素屬於那個子元素,其父元素的函數將不會再觸發
});
事件方法鏈的處理模型
大家知道在Javascript中如果一個事件有多個函數,那麼之後寫的函數會覆蓋前面的函數,執行最後寫的一個函數,但是在Jquery中,一個事件可以執行多個函數,如下:
$(function(){
$("#btn").bind("click",function(){
//調用第一個函數
$("#test").append("<p>綁定第一個函數</p>");
}).bind("click",function(){
$("#test").append("<p>綁定第二個函數</p>");
}).bind("click",function(){
$("#test").append("<p>綁定第三個函數</p>");
});
});
清除對象的綁定事件
$("#delAll").click(function(){
$("#test").unbind();//將這個$("#test")對象的所有綁定事件清除
});
//取消特定的綁定事件
$(function(){
$("#btn").unbind("click",fun1);//取消這個fun1對象的綁定事件click事件
});
$(function(){
$("#btn").bind("click",fun1=function(){
//調用第一個函數
$("#test").append("<p>綁定第一個函數</p>");
}).bind("click",fun2=function(){
//綁定第二個函數
$("#test").append("<p>綁定第二個函數</p>");
}).bind("click"fun3=,function(){
$("#test").append("<p>綁定第三個函數</p>")
});
});
----綁定事件,讓事件只執行一次
$(function(){
$("#btn").one("click"fun1=,function(){
//調用第一個函數
$("#test").append("<p>綁定第一個函數</p>");
}).one("click",fun2=function(){
//調用第二個函數
$("#test").append("<p>綁定第二個函數</p>");
});
});
Jquery自定義事件機制
$(function(){
$("#btn").bind("myClick",function(event,message1,message2){
//給該對象綁定自定義myClick事件,傳遞二個參數
...想要做的操作
});
$("#btn").click(function(){
$(this).trigger("myClick",["我的自定義","事件"]);//這個對象代理調用trigger的myClick事件
}).trigger("myClick",["hello","world"]);
});
同時綁定多個事件,調用同一個方法
$("div").bind("mouseover mouseout",function(){
//可執行代碼段
});
以上通過對Jquery的事件瞭解我們很容易發現以前對於javascript事件處理的地方問題,在jquery中我們可以很容易的解決,通過使用jquery讓我們對於dom的事件處理變的更加的靈活,下次我將和大家講解jquery的簡單動畫,和AJAX處理