这段代码是否有原因:
var verb = "";
function printPage (input) {
$("div").append(input + "<br>");
}
$( "#submit" ).click(function() {
verb = $('#enter').val();
printPage(verb);
});
printPage(verb);
只导致#enter(表单)的值在click事件中记录一次(当最后一个printPage打印原始的空字符串时),而此代码:
var verb = "";
function printPage (input) {
$("div").append(input + "<br>");
}
function buttonClick() {
verb = "verb!";
printPage(verb);
}
buttonClick();
printPage(verb);
打印动词两次,因为该函数已成功更改动词变量值?对不起,如果我还没有充分解释我的问题,我会在需要时详细说明。
答案 0 :(得分:1)
输入值可能为空,因此您可能会看到不变,您可以这样使用:
verb = $('#enter').val() || 'verb';
答案 1 :(得分:0)
jQuery与否,如果你的方法运行,它会改变变量,如果$('#enter')的值不是空白(否则你不会看到变化)。
要对此进行测试,请在console.log( verb );
之前和之后放置verb = $('#enter').val();
。您将看到未调用onClick方法,或者甚至没有值。
var verb = "";
function printPage (input) {
$("div").append(input + "<br>");
}
$( "#submit" ).click(function() {
console.log( verb );
verb = $('#enter').val();
console.log( verb );
printPage(verb);
console.log( verb );
});
printPage(verb);
我的猜测是你没有使用正确的选择器(而不是#enter,你应该使用不同的id / class选择器)或者该值实际上是空的。
编辑:如果您想知道console.log正在做什么,它会将其写入您的浏览器控制台(如果您已经知道这一点,请道歉)。应该打开它,看看我们正在打印的调试日志。
如果你想这样做,你也可以提醒(动词)。
答案 2 :(得分:0)
您的buttonClick
功能在printPage
功能之前运行 - 这使得verb
变量保持动词!&#39;。在printPage
var具有&#39;动词后,verb
函数运行两次!&#39;它的价值。
对于jQuery,printPage
函数立即运行,而verb
为空。只有当您点击按钮时,verb
才有值。