function story1(){
var t=document.createElement('p');
t.innerHTML = "You wake up from your sleep in a half daze to hear noises of screams outside your bedroom window. You stumble over there to see what is the matter. You decide it's a good idea to grab your"+' <i onclick=addSword()> '+" sword "+' </i> '+"as you take the "+' <i onclick=story2()> '+" stairs. "+'</i>';
document.getElementById("story").appendChild(t);
}
function story2(){
var t = document.createElement('p');
t.innerHTML = "You realize that the door is locked and need to break the code in order to go outside." +' <i id="one" onclick=addOne()> '+ num1 +'</i>'+' <i id="two" onclick=addTwo()> '+ num2+'</i>'+' <i id="three" onclick=addThree()> '+ num3 +'</i>';
document.getElementById("story").appendChild(t);
var b = document.createElement('input');
b.type = 'button';
b.value = 'Check Code';
b.onclick = checkCode();
document.getElementById("story").appendChild(b);
}
简而言之,这两个功能就是我的问题所在。我正在尝试在div内附加一个按钮,以检查代码是否损坏。
checkCode
的编码按原样工作。问题是,当单击楼梯而不是按钮时,
checkCode()
实际上正在工作。我已经尝试过b.on('click', checkCode())
和b.setAttribute('onclick', checkCode())
。也许我没有将按钮编码正确,但是到目前为止,教程和阅读类似问题的答案只能使我步入正轨! (大声笑)
提前致谢!
最佳答案
您的问题是,您正在将函数checkCode
的结果设置为处理程序/属性,而不是函数引用。您正在调用它。
尝试:
b.onclick = checkCode;
要么
b.on('click', checkCode);
您需要将函数的引用设置为处理程序。用
()
设置它会在那儿然后在那里调用该函数,因此您会看到该行为。