我是FE,也是Fe

          前端來源于不斷的點滴積累。我一直在努力。

          統計

          留言簿(15)

          閱讀排行榜

          評論排行榜

          jQuery中的stopImmediatePropagation與stopPropagation的區別

          有這么個需求。要在一個文本框上監聽兩個事件,例如:
           
          <script type="text/javascript">
                  $(
          function(){
                      $(
          "#t").keyup(function(e){
                          $(
          "#s").html("keyup1");
                          
          //stopImmediatePropagation可以阻止在這之后綁定的事件
                          //比較注釋和不注釋這一行的區別
                          e.stopImmediatePropagation();
                      });
                      $(
          "#t").keyup(function(e){
                          $(
          "#s").html("keyup2");
                      });
                  });
              
          </script>
          <input type="text" id="t" name="" value="" />
          <span class="" id="s"></span>
           
          如果在第一個事件中需要阻止第二個事件的執行可以在第一個事件中使用event.stopImmediatePropagation方法。jQuery的event的對象是增強的event對象,
          stopImmediatePropagation就是jQuery獨有的一種阻止jQuery綁定事件機制。可以通過isImmediatePropagationStopped()來判斷是否阻止了jQuery立即冒泡。
           
          stopImmediatePropagation的實現可以參見我之前的一篇文章,從jQuery的緩存到事件監聽 在這篇文章中提到jQuery將事件都緩存在一個數組中按照先后順序執行。如果stopImmediatePropagation就停止執行數組中的監聽函數。
           
          stopPropagation是阻止默認事件監聽函數。不是jQuery獨有,阻止默認事件的冒泡,比如監聽了DOM節點和該節點的父節點的事件,默認是事件執行將從里到外,這就是所謂的冒泡。在IE9-瀏覽器中可以使用event.cancelBubble=false來做到,標準瀏覽器使用event.stopPropagation方法。jQuery也把stopPropagation擴展方式到IE上這樣有了一致的方法。
           
          綜上所述,其實stopImmediatePropagation與stopPropagation就不是一個東西,所以也不存在什么區別了。
          參考資料
          http://api.jquery.com/event.stopImmediatePropagation/
          http://stackoverflow.com/questions/5299740/jquery-stoppropagation-vs-stopimmediatepropagation
          http://api.jquery.com/event.stopImmediatePropagation/
          http://stackoverflow.com/questions/5299740/jquery-stoppropagation-vs-stopimmediatepropagation
           

          posted on 2011-05-06 18:04 衡鋒 閱讀(3249) 評論(2)  編輯  收藏 所屬分類: javascriptJqueryWeb開發

          評論

          # re: jQuery中的stopImmediatePropagation與stopPropagation的區別 2011-09-15 08:35 tb

          謝謝峰哥!!  回復  更多評論   

          # re: jQuery中的stopImmediatePropagation與stopPropagation的區別 2011-09-15 19:20 衡鋒

          @tb
          你認識我?  回復  更多評論   

          主站蜘蛛池模板: 嘉峪关市| 咸阳市| 合山市| 巴东县| 手机| 大竹县| 奉节县| 鄂尔多斯市| 大英县| 钟祥市| 吉木萨尔县| 双城市| 宣汉县| 井冈山市| 大同县| 海阳市| 淮滨县| 河池市| 天门市| 垫江县| 东台市| 新民市| 马公市| 铜川市| 恩平市| 郑州市| 宁阳县| 陈巴尔虎旗| 嵩明县| 聂荣县| 大冶市| 曲周县| 浦县| 五大连池市| 青铜峡市| 永福县| 定远县| 古蔺县| 肃宁县| 东阳市| 澄迈县|