我正在尝试在 JSFiddle 中测试某些内容,但收到上述错误。
这是 HTML:
<a onclick="populate();return false;" class="populate" href="?hello">Hello</a>
<a onclick="populate();return false;" class="populate" href="?hello">One More</a>
<a onclick="populate();return false;" class="populate" href="?hello">Another One</a>
<a onclick="populate();return false;" class="populate" href="?hello">Another Other One</a>
Javascript:
function populate(){
var populate = document.getElementsByClassName('populate');
for(var i=0; i < populate.length; i++)
{
var item = populate[i];
item.addEventListener('click', function() {
var current = this.getAttribute('href');
alert(current);
}, false);
}
return false;
}
任何帮助或建议将不胜感激!
最佳答案
您只是在 JavaScript 的顺序上遇到了问题:如果您使用内联 JavaScript 事件处理程序,请确保之前定义了所有使用的函数!
在您的情况下,函数 populate()
是在 onload
事件中定义的,因此在解析内联 JavaScript 时,浏览器并不知道它。只需将 JavaScript 的执行交换为“No wrap - in
编辑(来 self 的评论)
警报仅在第二次单击后起作用,因为相应的单击处理程序是在 populate()
函数内分配的,该函数仅在单击后执行。
不过,您可以更改分配,例如 new fiddle .
关于javascript - JSFiddle : Please us POST request,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17651619/