【Javascript】重新綁定默認事件


更多內容,請移步 JSCON-簡時空

JS Event Model

在有一種場景下,你想先屏蔽掉默認的系統事件,而在特定條件下又重新綁定回去。

【場景】H5頁面,動畫歡迎界面,共6幀;想在前5幀中屏蔽掉默認的touchmove事件,在第6幀是表單頁面,想恢復系統默認的touchmove——這樣用戶可以自由拖拽頁面,瀏覽完整的表單信息

原生JS:
目前我所能想到的最簡單粗暴有效的方法是這樣的:(沒錯,it works)

        document.ontouchmove = function(e){return false;}

        if(index == 5){
            document.ontouchmove = function(e){return true;};
        }



jQuery:
有jQuery的日子才是好日子,使用jQuery你將變得更加的強大。任何一個元素將事件的原有事件handler放在data-events屬性中。所以你在調用unbind方法時,將其存儲到一個變量中即可:(注意事件對象是一個數組)

       var events = $('#test').data("events");
        $('#test').unbind('click', events.click[0]);

或者:

var storedClick = $test.data('events').click[0].handler;
$test.bind('click', storedClick)

原理:jQuery: Unbind event handlers to bind them again later
實例:http://jsfiddle.net/76GPF/


免責聲明!

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



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