检查小提琴 http://jsfiddle.net/vSHQD/查看故障发生情况。
当我将数据(即使我将其留空)添加到文本框并尝试单击“添加”时,它不会执行任何操作。
打开 Chrome 和 Firefox 控制台都会给我同样的错误,它说"changeText2()" is not defined
.
我怎样才能解决这个问题?我已经多次遇到这个错误,而且大多数情况下它都有非常奇怪的解决方法,但我不确定避免它的方法或我什至做错了什么。
似乎删除全局变量声明可以在大多数情况下修复它,但是,在这种情况下我需要它们,并且宁愿知道此错误发生的原因和方式。
JavaScript:
var list = document.getElementById('deliveryIdArray');
var names = [];
function changeText2() {
var deliveryIdentification = document.getElementById('deliveryIdentification').value;
names.push(deliveryIdentification);//simply add new name to array;
//array changed re-render list
renderList();
}
function renderList(){
while (list.firstChild) {
list.removeChild(list.firstChild);
}
//create each li again
for(var i=0;i<names.length;i++){
var entry = document.createElement('li');
entry.appendChild(document.createTextNode(names[i]));
var removeButton = document.createElement('button');
removeButton.appendChild(document.createTextNode("remove"));
removeButton.setAttribute('onClick','removeName('+i+')');
entry.appendChild(removeButton);
list.appendChild(entry);
}
}
function removeName(nameindex){
names.splice(nameindex,1);
//array changed re-render list
renderList();
}
function getDeliveries(){
return names;
}
HTML:
<b>Number(s): </b>
<input id = "deliveryIdentification" name = "deliveryIdentification" type = "text" size = "16" maxlength = "30">
<!-- Array Area Creation -->
<input type='button' onclick='changeText2()' value='Add' />
<ol id="deliveryIdArray">
</ol>
Fiddle: http://jsfiddle.net/vSHQD/ http://jsfiddle.net/vSHQD/
在 JSFiddle 中,当您将包装设置为“onLoad”或“onDomready”时,您定义的函数仅在该块内定义,并且不能被外部事件处理程序访问。
最简单的解决方法是更改:
function something(...)
To:
window.something = function(...)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)