Jquery淺談之講解三

來源:互聯網
上載者:User

今天將和大家一起討論下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")對象的所有綁定事件清除
                     });
                    //取消特定的綁定事件www.2cto.com
                       $(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處理
  
摘自  sharme的專欄 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.