第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

Javascript removeEventListener無法正常工作

Javascript removeEventListener無法正常工作

不負(fù)相思意 2019-08-28 10:23:26
Javascript removeEventListener無法正常工作我有以下代碼來添加eventListener area.addEventListener('click',function(event) {               app.addSpot(event.clientX,event.clientY);               app.addFlag = 1;           },true);它正如預(yù)期的那樣正常工作。后來我嘗試使用以下代碼刪除事件監(jiān)聽器 area.removeEventListener('click',function(event) {               app.addSpot(event.clientX,event.clientY);               app.addFlag = 1;           },true);但是偶數(shù)監(jiān)聽器沒有被移除。為什么會(huì)發(fā)生這種情況?我的removeEventListener()有什么問題嗎?注意:這里的區(qū)域類似于document.getElementById('myId')
查看完整描述

3 回答

?
千巷貓影

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊

這是因?yàn)閮蓚€(gè)匿名函數(shù)是完全不同的函數(shù)。您removeEventListener的參數(shù)不是對(duì)先前附加的函數(shù)對(duì)象的引用。

function foo(event) {
              app.addSpot(event.clientX,event.clientY);
              app.addFlag = 1;
          }
 area.addEventListener('click',foo,true);
 area.removeEventListener('click',foo,true);


查看完整回答
反對(duì) 回復(fù) 2019-08-28
?
米琪卡哇伊

TA貢獻(xiàn)1998條經(jīng)驗(yàn) 獲得超6個(gè)贊

您在兩個(gè)調(diào)用中都創(chuàng)建了兩個(gè)不同的函數(shù)。因此第二個(gè)函數(shù)與第一個(gè)函數(shù)沒有任何關(guān)系,并且引擎能夠刪除該函數(shù)。請(qǐng)改為使用該功能的通用標(biāo)識(shí)符。

var handler = function(event) {
              app.addSpot(event.clientX,event.clientY);
              app.addFlag = 1;
          };area.addEventListener('click', handler,true);

之后你可以通過調(diào)用刪除處理程序

area.removeEventListener('click', handler,true);


查看完整回答
反對(duì) 回復(fù) 2019-08-28
?
精慕HU

TA貢獻(xiàn)1845條經(jīng)驗(yàn) 獲得超8個(gè)贊

如果要將局部變量傳遞給事件偵聽器調(diào)用的函數(shù),可以在函數(shù)內(nèi)部定義函數(shù)(以獲取局部變量)并在函數(shù)本身中傳遞函數(shù)的名稱。例如,讓我們從使用app作為局部變量添加事件監(jiān)聽器的函數(shù)內(nèi)部開始。你會(huì)在這個(gè)函數(shù)里寫一個(gè)函數(shù),比如

function yourFunction () {
    var app;

    function waitListen () {
        waitExecute(app, waitListen);
    }

    area.addEventListener('click', waitListen, true);}

然后,當(dāng)調(diào)用waitExecute時(shí),您需要?jiǎng)h除它。

function waitExecute (app, waitListen) {
    ... // other code
    area.removeEventListener('click', waitListen, true);}


查看完整回答
反對(duì) 回復(fù) 2019-08-28
  • 3 回答
  • 0 關(guān)注
  • 511 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)