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

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

動態(tài)生成的元素不觸發(fā)事件偵聽器

動態(tài)生成的元素不觸發(fā)事件偵聽器

明月笑刀無情 2023-10-24 15:56:21
伙計們遇到了一個應(yīng)該很容易的問題,但似乎沒有任何工作正常,我有一個簡單的網(wǎng)站,我正在嘗試注冊一個表行的點擊。內(nèi)容是從 Javascript 動態(tài)生成的,并從 firebase 獲?。?nbsp;                       var tableRow = document.createElement('tr');                    var tableData = document.createElement('td');                    tableData.addEventListener("click", draftRider(doc.data().name))                    tableData.innerHTML = "<p class='test'> click me </p>"                    tableRow.appendChild(tableData);                    document.getElementById("draftingStartBlock").appendChild(tableRow);我嘗試過轉(zhuǎn)義字符串、onclick 事件,現(xiàn)在添加事件偵聽器。此外,當(dāng)頁面首次加載時,該函數(shù)似乎會觸發(fā)。這是我想在單擊時調(diào)用的函數(shù):            function draftRider(riderName) {            showSnackBar(riderName)            if (playersTurn) {                var riderQuery = firebase.firestore().collection("leagues").doc(userLeagueId).collection("rider_list")                riderQuery.get().then(function (doc) {                    if (doc.exists) {                        var currentRiderName = doc.data().rider_name;                        var draftedBy = doc.data().drafted_by;                        if (riderName === currentRiderName && draftedBy === "") {                            database.collection("leagues")                                .doc(userLeagueId)                                .collection("rider_list")                                .doc(doc.id)                                .update("Drafted_By", userId)                            setNextPlayerAsPickingPlayer()                        }                    } else {                        // doc.data() will be undefined in this case                        console.log("No such document!");                    }                }).catch(function (error) {                    console.log("Error getting document:", error);                });            } else {                showSnackBar("Its currently not your turn");            }        }
查看完整描述

1 回答

?
qq_花開花謝_0

TA貢獻1835條經(jīng)驗 獲得超7個贊

您的代碼中的這一行就是問題所在:

 tableData.addEventListener("click", draftRider(doc.data().name))

addEventListener是一個函數(shù),它期望事件類型作為第一個參數(shù),函數(shù)作為第二個參數(shù)。在您的情況下,您沒有將函數(shù)作為第二個參數(shù)傳遞,您實際上是在調(diào)用該函數(shù)并將其返回的值(在本例中為未定義)作為第二個參數(shù)傳遞。這就是為什么您會看到頁面加載時調(diào)用一次函數(shù)。

根據(jù)您帖子中的代碼,您可以通過以下方式解決:

tableData.addEventListener("click", function() {
   draftRider(doc.data().name)})


查看完整回答
反對 回復(fù) 2023-10-24
  • 1 回答
  • 0 關(guān)注
  • 130 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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