前幾天項目需要實現一個AJAX攔截,於是就用jquery寫了一個,這里分享一下。
需求是這樣的,ajax不是我來寫,所有說我是不能動ajax的,並且我也不知道什么時候它會發生,為了方便項目經理讓我把它封裝成一個插件,使用的時候只要給對應的元素加一個自定義屬性就可以使用。
其實項目就是不想讓用戶多次點擊,如果發送出去的還沒有響應就顯示一個正在加載。
如果用原生JS寫,還是有些麻煩的,必須重寫AJAX,這樣我就用jquery了,因為它有這個功能。
ajaxStart:在發送ajax的時候會調用這個函數,我們可以在這里面寫loading。
ajaxStop:ajax結束。
其實這還算簡單,但是項目還有另外一個要求,就是有些是主動發送的ajax請求,這種是不能去攔截的,只攔截用戶發送的,所有我給目標元素添加了一個自定義屬性。
如果沒有加data-set這個自定義屬性就不行了
event.target可以獲取點擊的那個元素,注意不能再function(event)這里面傳這個,不然就成了jquery事件了。dataset可以獲取自定義屬性。
對了這里加了一句if(!event)是因為我們主動發送的ajax是沒有event.target所以的過濾一下,不然就報錯了。
ok了,具體的功能把console.log這句話替換就好了。