我对JS比较陌生,但我之前已用C语言进行过编程,而我正试图绕过整个事件驱动的本质.我正在尝试创建一个验证表单输入的脚本,但是我的所有代码都在运行 - if/else中的所有内容,循环,你有什么 - 无论事件是否发生.为了测试,并且为了更容易在这里发布,我写了一个简单的程序也有这个问题.
HTML:
<button id="test">Test</button>
Run Code Online (Sandbox Code Playgroud)
使用Javascript:
function init(){
document.getElementById("test").onclick = alert("hello");
}
window.onload = init;
Run Code Online (Sandbox Code Playgroud)
根据我的理解,应该在页面加载时调用init函数(window.onload),并且当点击具有ID"test"的按钮时,弹出警报(onclick).实际发生的是,一旦页面加载,警报就会弹出,如果我按下按钮,警报会再次弹出.
我的想法是我对JS的执行顺序做了一些不正确的假设,但我不能想到那是什么.有人能够对此有所了解吗?
我一直试图制作一个小脚本(顺便说一下,我是Python的新手),这将返回给定单词的拼字游戏分数(argv [1],并提示我输入一个单词,如果我不要给它一个.在稍后摆弄if语句和许多索引错误之后,我决定:
try:
do something with sys.argv[1]
except IndexError:
print 'Type an argument'
Run Code Online (Sandbox Code Playgroud)
但它并不像我想的那么优雅.它基本上只是说"如果你得到这种错误,打印这个:"对吧?我一直在尝试这样的事情:
if argv[1] >= 1:
do something with sys.argv[1]
else:
print 'Type an argument'
Run Code Online (Sandbox Code Playgroud)
但我一直在if部分得到一个索引错误,我想我认为是因为如果argv [1]小于1,则没有参数,这意味着argv[1]不存在.我在右边的页面吗?我想说"如果没有给出任何论据,请打印出来:"这可能吗?
这是我正在使用的实际代码
from sys import argv
from string import maketrans
i = 'a' 'b' 'c' 'd' 'e' 'f' 'g' 'h' 'i' 'j' 'k' 'l' 'm' 'n' 'o' 'p' 'q' 'r' 's' 't' 'u' 'v' 'w' 'x' 'y' 'z' 'A' 'B' 'C' 'D' 'E' 'F' 'G' 'H' 'I' 'J' 'K' 'L' …Run Code Online (Sandbox Code Playgroud)