关于jQuery的奇怪输出
为什么两个输出消息是相同的:“不是在脸上!”; “foo”结尾中的第一条消息不是指“Spoon!”? 为什么不呢?关于jQuery的奇怪输出,jquery,Jquery,为什么两个输出消息是相同的:“不是在脸上!”; “foo”结尾中的第一条消息不是指“Spoon!”? 为什么不呢? 请有人解释一下。我不理解教程的解释。当点击foo时,它会提醒消息的最后一个值,这将是“不在脸上!”因为这行代码在页面加载时已经执行。当点击foo时,它会提醒消息的最后一个值,这将是“不在脸上!”因为这行代码在加载页面时已经执行。这是因为事件处理程序是异步启动的。 而您正在设置的消息值是在第一个线程中完成的 因此,基本上你的程序将读取你的全部代码,将值设置为'Spoon!',然后是您
请有人解释一下。我不理解教程的解释。当点击
foo
时,它会提醒消息的最后一个值,这将是“不在脸上!”因为这行代码在页面加载时已经执行。当点击foo
时,它会提醒消息的最后一个值,这将是“不在脸上!”因为这行代码在加载页面时已经执行。这是因为事件处理程序是异步启动的。
而您正在设置的消息值是在第一个线程中完成的
因此,基本上你的程序将读取你的全部代码,将值设置为'Spoon!'代码>,然后是您设置的最后一个“不在脸上!”代码>。然后,当您单击任一按钮时,它将提示消息值“不在脸上!”代码>
尝试将消息放入函数中,然后您将看到每个函数的不同消息。这将如您所期望的那样工作,因为您还异步设置了值
var message = 'Spoon!';
$('#foo').bind('click', function() {
alert(message);
});
message = 'Not in the face!';
$('#bar').bind('click', function() {
alert(message);
});
这是因为事件处理程序是异步启动的。
而您正在设置的消息值是在第一个线程中完成的
因此,基本上你的程序将读取你的全部代码,将值设置为'Spoon!'代码>,然后是您设置的最后一个“不在脸上!”代码>。然后,当您单击任一按钮时,它将提示消息值“不在脸上!”代码>
尝试将消息放入函数中,然后您将看到每个函数的不同消息。这将如您所期望的那样工作,因为您还异步设置了值
var message = 'Spoon!';
$('#foo').bind('click', function() {
alert(message);
});
message = 'Not in the face!';
$('#bar').bind('click', function() {
alert(message);
});
只有函数绑定才会发生。当点击事件发生时,代码的实际执行才会发生。当点击事件发生时,消息变量将显示其最后一个值,该值为“非正面”只有函数绑定才会发生。当点击事件发生时,代码的实际执行才会发生。当点击事件发生时,消息变量将显示其最后一个值,该值为“非正面”请阅读-25%不好…请阅读-25%不好…谢谢您,SpYk3HH。我得到了它!谢谢你,世爵。我得到了它!哦我得到了它。。。编译器首先将变量“message”设置为“notin The face!”。当两个按钮中的一个被触发时,它会得到“不在脸上”的值。对吗?谢谢你的回答!哦我得到了它。。。编译器首先将变量“message”设置为“notin The face!”。当两个按钮中的一个被触发时,它会得到“不在脸上”的值。对吗?谢谢你的回答!
$('#foo').bind('click', function() {
var message = 'Spoon!';
alert(message);
});
$('#bar').bind('click', function() {
var message = 'Not in the face!';
alert(message);
});