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

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

Javascript-將具有參數(shù)的函數(shù)添加到addEventListener會導(dǎo)致函數(shù)觸發(fā)

Javascript-將具有參數(shù)的函數(shù)添加到addEventListener會導(dǎo)致函數(shù)觸發(fā)

藍(lán)山帝景 2021-05-03 16:57:49
我試圖像這樣forEach()將函數(shù)的索引傳遞到函數(shù)參數(shù)中addEventListener:dispensaryLocations.forEach((location, i) => {  location.addEventListener('click', clickLocationToOpenMarker(i));});這是clickLocationToOpenMarker()函數(shù):  const clickLocationToOpenMarker = id => {    infoWindowContents.map(infowindow => {      infowindow.close();    });    google.maps.event.trigger(markers[id], 'click');  };對于contex:markers是一組Google Maps標(biāo)記,單擊它們后,打開一個顯示有關(guān)位置信息的信息窗口。infoWindowContents是一個數(shù)組,其中包含每個標(biāo)記的所有相應(yīng)信息窗口。但是,我在這里與Google Maps API無關(guān),更多的是試圖在addEventListener不觸發(fā)參數(shù)的情況下將參數(shù)傳遞給函數(shù)。我的問題是,當(dāng)我addEventListener像這樣傳遞函數(shù)時:element.addEventListener('click' clickLocationToOpenMarker)該函數(shù)按預(yù)期分配給每個元素,而沒有立即調(diào)用并運行。需要注意的是,我需要能夠i像這樣將變量作為參數(shù)傳遞給函數(shù):element.addEventListener('click', clickLocationToOpenMarker(i))這樣,函數(shù)Google Maps Marker才能知道要打開哪個變量。但是,一旦我將參數(shù)添加到函數(shù)的參數(shù)中,與上面的示例不同,該函數(shù)將在forEach()循環(huán)的每次迭代中立即被調(diào)用并觸發(fā)。為什么addEventListener在傳遞參數(shù)時立即觸發(fā)一個函數(shù),但是當(dāng)沒有參數(shù)傳遞給該函數(shù)時,它只是對其進(jìn)行賦值?
查看完整描述

2 回答

?
楊魅力

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

您正在調(diào)用clickLocationToOpenMarker。您需要將其包裝在一個函數(shù)中,以防止其立即運行:

dispensaryLocations.forEach((location, i) => {
  location.addEventListener('click', () => clickLocationToOpenMarker(i));
  });


查看完整回答
反對 回復(fù) 2021-05-20
?
慕斯709654

TA貢獻(xiàn)1840條經(jīng)驗 獲得超5個贊

表達(dá)式clickLocationToOpenMarker(i)是函數(shù)調(diào)用。要將函數(shù)綁定到click事件,可以將其包裝在另一個匿名函數(shù)中(如sliptype在其答案中所述):

location.addEventListener('click', function() {
    clickLocationToOpenMarker(i);
    });

或者,您可以用來Function.prototype.bind在函數(shù)中綁定參數(shù)值(這樣就不必創(chuàng)建匿名函數(shù))。

location.addEventListener('click', clickLocationToOpenMarker.bind(null, i));


查看完整回答
反對 回復(fù) 2021-05-20
  • 2 回答
  • 0 關(guān)注
  • 252 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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