[英]Javascript function isn't recognized
我在 javascript 方面沒有很多知識,所以我不知道這里有什么問題,我在 js 中動態創建 div,每個 div 在被點擊時調用一個函數,但該函數沒有被識別。 這是代碼的一部分
for (......) {
var listatema = document.createElement("div");
listatema.innerHTML += "<a href='javascript: void(0)' onClick='functest(" + pag + ")'>" + temat + "</a>";
document.getElementById('menu').appendChild(listatema);}
}
“tema”是一個文本,函數“functest”有一個參數“pag[aux]”,這是一個數字。
功能是:
function functest(arg){
console.log(arg)
}
我嘗試的其他替代方法是更改: onClick='"+ functest(pag) +"'
:
我改變了引號 "" 的位置,該功能運行良好,但它在頁面加載時執行,它不等待點擊。
如果您正在執行以下操作,您的代碼應該可以工作:
function functest(arg) { console.log(arg); } for (var i = 0; i < 10; i++) { var listatema = document.createElement("div"); listatema.innerHTML += "<a href='javascript: void(0)' onClick='functest(" + i + ")'>" + i + "</a>"; document.getElementById('menu').appendChild(listatema); }
<div id="menu"></div>
但是,我建議使用addEventListener
或在文檔元素對象上設置onClick
處理程序,而不是設置 innerHTML。 請注意,不建議設置 innerHTML,尤其是在呈現用戶輸入時。 請參閱https://developer.mozilla.org/en-US/docs/Web/API/Element/innerHTML#Security_thinkations 。 在您的情況下,這可能不是真正的問題,但如果可以的話,最好避免它:)
for (var i = 0; i < 5; i++) { var wrapper = document.createElement("div"); var listatema = document.createElement("a"); listatema.textContent = i; listatema.href = "javascript:void(0)"; listatema.addEventListener('click', function(e) { console.log(this.i); }.bind({ i : i })); wrapper.appendChild(listatema); document.getElementById('menu').appendChild(wrapper); }
<div id="menu"></div>
onClick='functest(\""+ pag +"\")'
你忘了引用參數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.