我是 javascript 和 jquery 的新手,我遇到了一个小问题。最新版本的 Chrome 和 Firefox 都会发生这种情况,所以我认为这不是浏览器问题。
相关代码在这里(这是 HTML 页面上脚本标签内的自调用函数)。
(function () {
"use strict";
var submitbutton = $('#submitcommand'),
textinput = $('#textinput'),
userinput = textinput.val();
submitbutton.on('click', function() {
alert("textinput is " + textinput.val()); // => works
alert("userinput is " + userinput); // => undefined
});
}());
使用“textinput.val()”第一次调用 alert() 就可以了。对 alert() 的第二次调用不返回任何可见文本,因为“用户输入”正在评估为“未定义”。
我尝试进入 Firebug 控制台并一个接一个地粘贴四个语句(两个分配和两个对 alert() 的调用)。这行得通,并得到我期望的结果。
所以问题是:on('click') 函数中的 'userinput' 变量有什么变化?我在这里没有看到什么?
提前致谢!