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

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

如何在window.matchMedia中添加removeEventListener?

如何在window.matchMedia中添加removeEventListener?

一只名叫tom的貓 2023-12-14 16:24:32
這是我的問題:我想要一個僅適用于小于“400px”的瀏覽器尺寸的“addEventListener”點擊方法。但是當我們調整瀏覽器大小時,我想刪除這個方法。我的代碼的格式如下。如果我的瀏覽器尺寸超過 400px,我會繼續使用該方法。我需要你的幫助。function customFunction(x) {    var cardClick = document.getElementsByClassName("card");    var inner = document.getElementsByClassName("card-inner");    if (x.matches) {        cardClick[0].addEventListener("click", cardFunction);        function cardFunction() {            // some code            // inner[0].style......        }    } else {        cardClick[0].removeEventListener("click", cardFunction);    }}var x = window.matchMedia("(max-width: 400px)");customFunction(x);x.addListener(customFunction);
查看完整描述

2 回答

?
胡子哥哥

TA貢獻1825條經驗 獲得超6個贊

“使用不標識 EventTarget 上當前注冊的任何 EventListener 的參數調用 removeEventListener() 沒有任何效果?!?/p>


每次調用 customFunctions 時,您都會定義新版本的卡函數,因此您無法將其與元素分離,因為它與您附加的函數不同。


function cardFunction() {

   // some code

   // inner[0].style......

}


function customFunction(x) {


    var cardClick = document.getElementsByClassName("card");

    var inner = document.getElementsByClassName("card-inner");


    if (x.matches) {

        cardClick[0].addEventListener("click", cardFunction);


    } else {

        cardClick[0].removeEventListener("click", cardFunction);

    }

}


var x = window.matchMedia("(max-width: 400px)");

customFunction(x);

x.addListener(customFunction);

javascript


查看完整回答
反對 回復 2023-12-14
?
慕容3067478

TA貢獻1773條經驗 獲得超3個贊

x.removeListener(customFunction)

檢查此處的示例:https ://developer.mozilla.org/en-US/docs/Web/API/MediaQueryList/removeListener


查看完整回答
反對 回復 2023-12-14
  • 2 回答
  • 0 關注
  • 176 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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