return、reutrn false、e.preventDefault、e.stopPropagation、e.stopImmediatePropagation的區別

return瀏覽器

var i = function(){函數

            return對象

        }事件

        console.log(i())//undefined回調函數

return的主要做用是阻止函數繼續執行,直接返回undefinedio

 

return falseconsole

<a class="baidu" href="http://www.baidu.com">百度</a>event

$('.baidu').on('click',function(e){function

            console.log(1)class

           return false

        })//1

並未跳轉頁面,當每次調用return false時,實際作了3件事情

1.event.preventDefault();

2.event.stopPropagation();

3.中止回調函數執行並當即返回

 

e.preventDefault

$('.baidu').on('click',function(e){

            console.log(1)

           e.preventDefault()

        })//1

e.preventDefault()方法用來阻止瀏覽器繼續執行默認行爲,這裏阻止了頁面的跳轉

 

e.stopPropagation

 

<div class="btn"><a class="baidu" href="http://www.baidu.com">百度</a></div>

$('.btn').on('click', function () {

        console.log(520)

    })

    $('.btn .baidu').on('click', function (e) {

        console.log(1)

        e.preventDefault()

        e.stopPropagation()

    })

輸出結果爲1

 

e.stopPropagation阻止事件冒泡

 

e.stopImmediatePropagation

$('.btn .baidu').on('click',function(e){

        console.log(1)

        e.preventDefault()

    })

    $('.btn .baidu').on('click',function(e){

        console.log(2)

        e.preventDefault()

        e.stopImmediatePropagation()

    })

    $('.btn .baidu').on('click',function(e){

        e.preventDefault()

        console.log(3)

    })

    $('.btn').on('click',function(e){

        e.preventDefault()

        console.log(4)

    })

點擊輸出結果爲1,2

 

e.stopImmediatePropagation()會中止一個事件繼續執行,即便當前的對象上還綁定了其餘處理函數,全部綁定在一個對象上的事件會按照綁定順序執行

 

綜上所述

return阻止函數繼續執行,返回undefined

return false有三個做用,阻止瀏覽器默認行爲,阻止事件冒泡,中止回調函數執行並當即返回

event.preventDefault阻止瀏覽器默認行爲

event.stopPropagation阻止事件冒泡

event.stopImmediatePropagation中止一個事件繼續執行,即便當前的對象上還綁定了其餘處理函數,全部綁定在一個對象上的事件會按照綁定順序執行

相關文章
相關標籤/搜索