1. 程式人生 > >js事件之event.preventDefault()與event.stopPropagation()用法區別

js事件之event.preventDefault()與event.stopPropagation()用法區別

很多朋友都以為event.preventDefault()與event.stopPropagation()是jquery的方法,其實不是的它們是js本身自帶的方法了,下面我來給各位同學簡單介紹它們兩的用法與區別了。

event.preventDefault()用法介紹

該方法將通知 Web 瀏覽器不要執行與事件關聯的預設動作(如果存在這樣的動作)。例如,<input type='' /> 如果 type 屬性是 "submit",在事件傳播的任意階段可以呼叫任意的事件控制代碼,通過呼叫該方法,可以阻止提交表單。注意,如果 Event 物件的 cancelable 屬性是 fasle,那麼就沒有預設動作,或者不能阻止預設動作。無論哪種情況,呼叫該方法都沒有作用。

該方法將通知 Web 瀏覽器不要執行與事件關聯的預設動作(如果存在這樣的動作)。

例如,如果 type 屬性是 "submit",在事件傳播的任意階段可以呼叫任意的事件控制代碼,通過呼叫該方法,可以阻止提交表單。

注意,如果 Event 物件的 cancelable 屬性是 fasle,那麼就沒有預設動作,或者不能阻止預設動作。無論哪種情況,呼叫該方法都沒有作用。

event.stopPropagation()用法介紹

該方法將停止事件的傳播,阻止它被分派到其他 Document 節點。在事件傳播的任何階段都可以呼叫它。注意,雖然該方法不能阻止同一個 Document 節點上的其他事件控制代碼被呼叫,但是它可以阻止把事件分派到其他節點

該方法將停止事件的傳播,阻止它被分派到其他 Document 節點。在事件傳播的任何階段都可以呼叫它。

注意:雖然該方法不能阻止同一個 Document 節點上的

其他事件控制代碼被呼叫,但是它可以阻止把事件分派到其他節點。

event是DOM的事件方法,所以不是單獨使用,比如指定DOM

/*導航*/
body.nav-tran .warp,body.nav-tran .bottom_btn{
    -webkit-transform: translate(-8rem, 0);
    -moz-transform: translate(-8rem, 0);
    -ms-transform: translate(-8rem, 0);
    -o-transform: translate(-8rem, 0);
    transform: translate(-8rem, 0);
}
body.nav-tran .nav{
    -webkit-transform: translate(0, 0);
    -moz-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    -o-transform: translate(0, 0);
    transform: translate(0, 0);
}
.warp,.nav,.bottom_btn{
    -webkit-transition: all .3s;
    -moz-transition: all .3s;
    -ms-transition: all .3s;
    -o-transition: all .3s;
    transition: all .3s;
}


function nav(){
    var btn=$(".nav-btn");
    var warp=$(".warp");
    btn.on("touchstart",function(event){
        $("body").addClass("nav-tran");
        event.stopPropagation();
        //return false;
    });
    warp.on("touchstart",function(){
        $("body").removeClass("nav-tran");
    });
}