我没有很多知识在JavaScript中,所以我不知道这里有什么问题, 我在js中动态创建div,每个div在被点击时调用一个函数,但函数是没有被识别。这是代码Javascript功能不被识别
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) +"'
:
我改变的引号“”的位置和功能的工作不错,但在执行时,页面已加载,它不会等待点击。
我一直令人头大我的脑子在这一个,而测试JSFiddle上的类似解决方案。真正有趣的是,您的** first **解决方案在您的代码片段中完美地适用于我,但告诉我该功能在JSFiddle上未定义。我已经完全复制了你的代码。任何想法,为什么会这样? [小提琴](https://jsfiddle.net/Obsidian_Age/yrL8ybgm/)。你的第二个解决方案似乎在两个位置都可以正常工作:) –
这很可能是如何在jsFiddle中注入脚本的。我认为这是因为它们将函数封装在'onLoad'处理程序中,所以它不会被挂载到全局范围。如果您在HTML中添加嵌入式脚本,它应该可以工作 - https://jsfiddle.net/msindwan/yrL8ybgm/1/。 –
这似乎是它!感谢您的澄清:)虽然我不是那个问这个问题的人,但对于我指出JSFiddle的有限范围来说,您仍然是一个巨大的帮助。我已经提出了你的答案,但希望我可以授予你一些代表你的评论以及;) –