jQuery-委托事件和on方法注冊事件


delegate注冊委托事件

delegate--代理、委托
事件代理----事件最終不是由$("#first")執行,它只是代理元素
第一個參數:最終發生事件的元素
第二個參數:事件類型
第三個參數:函數

事件執行順序:對於被委托者來說先執行委托事件,后執行簡單事件。
例:下面的例子中,如果為p、div都注冊點擊事件,再為div注冊委托事件,
則先執行p的點擊事件,再執行div注冊的委托事件,最后執行div的點擊事件

 

on方法注冊簡單事件與委托事件

<script>
/**
* jQuery-1.7版本后綜合所有的注冊事件的方式,出現了on方法
* on注冊事件
* 第一個參數:事件類型
* 第二個參數:如果使用事件代理的方式,則需要填寫最終觸發事件的元素
* 第三個參數:data(暫時不知有什么用,但不用填寫)
* 第四個參數:function(){}--函數
*/

// on注冊事件的兩種方式
// 第一種-----為自己注冊事件
// 這種方式對於新建的元素不會附加事件
$("#second>p").on("click",function () {
alert("second");
});
// 第二種----事件代理(為父元素注冊事件)
// 這種方式對於新建的子元素同樣有事件附加
$("#third").on("click","p",function () {
alert("third");
});
</script>

<!--off方法解除綁定事件-->
<script>
// 第一種解除方法
// $("p").click();

// 第二種方法:off方法解除
$("p").off("click");
//由於只有第二個div中的p本身注冊了點擊事件,所以只有第二個div中p解除了事件
</script>

<!--trigger方法觸發事件-->
<script>
$("#dv").on("click",function () {
alert("點擊了");
});
$("#btn").on("click",function () {
// 第一種方法---直接調用它的click函數
// $("#dv").click();
// 第二種方法---使用trigger方法
$("#dv").trigger("click");
alert("由按鈕觸發的");
});
</script>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM