亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用addEventListener在函數體外綁定的函數,在函數體內無法取消綁定

使用addEventListener在函數體外綁定的函數,在函數體內無法取消綁定

心為形役 2017-10-26 09:41:26
項目的需求是給五個元素先添加一個動畫,在動畫執行完成后再給五個元素添加另外一個動畫。元素以數組的形式保存在了arr中,實際在執行的過程中發現section.removeEventListener("animationend",down.bind(this,arr,section),false)這一句沒有正常生效,在for循環執行完成后,會反復再次執行down(arr,section)這個方法。中間插入clear()這個方法的執行結果。判斷是在section這個元素上“animationend”執行完成后,同時綁定了down()和clear()兩個方法的原因導致的?,F在問題就是不理解為什么removerEventListener()這個方法會不生效//?給元素的父級元素添加監聽animationend事件,避免元素結束動畫時間不一致導致重復執行事件 ????????//?使用bind方法綁定執行環境且傳遞兩個數組和父元素 ????????section.addEventListener("animationend",down.bind(this,arr,section),false) ????????//?var?bb=down.bind(this,arr,section,bb) ????????//?定義方法,在上升動畫執行完畢后觸發。 ????????function?down(arr,section){ ????????????//?console.log(le) ????????????console.log(section) ????????????//?刪除父級元素中綁定的動畫結束后執行的方法 ????????????section.removeEventListener("animationend",down.bind(this,arr,section),false) ????????????//?var?kk=down.bind(this,arr,section,bb) ????????????????//?var?le=arr[i] ????????????????//?console.log(kk==bb) ????????????????//?遍歷數組,為元素綁定下降的動畫 ????????????console.log(arr[1].style.animationName) ????????????????for(var?j=0;j<arr.length;j++){ ????????????????????console.log(arr[j].style.animationName) ????????????????????arr[j].style.animation="bb?1s" ????????????????????console.log(arr[j].style.animationName) ????????????????????arr[j].style.animationTimingFunction="cubic-bezier(0.25,0.5,0.75,1)" ????????????????//?le.style.animationFillMode="forwards" ????????????????console.log(arr[j]) ????????????????} ????????????//?監聽父級元素,在所有元素下降動畫執行完畢后,執行清除方法,清除元素的動畫 ????????????section.addEventListener("animationend",clear.bind(this,arr),false)
查看完整描述

1 回答

?
心為形役

TA貢獻1條經驗 獲得超0個贊

我分享下我自己研究的結果吧。雖然animationend這個事件在父級綁定的,但不同的子元素都綁定了動畫,這個事件依然會觸發五次。不知道這算不算是一個無解的問題,最后我放棄這個思路了。

查看完整回答
反對 回復 2017-11-09
  • 1 回答
  • 1 關注
  • 1372 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號