Javascript 全局变量不通过函数更改
我正在尝试获取一个人当前在keyup上使用的输入框的值和名称,但是当keyup函数运行后,我在更新全局变量方面遇到了问题。他们只是继续说Google Chrome开发者工具中没有定义 我做错了什么Javascript 全局变量不通过函数更改,javascript,Javascript,我正在尝试获取一个人当前在keyup上使用的输入框的值和名称,但是当keyup函数运行后,我在更新全局变量方面遇到了问题。他们只是继续说Google Chrome开发者工具中没有定义 我做错了什么 $( document ).ready(function() { var assessName; var assessVal; var impName; var impVal
$( document ).ready(function() {
var assessName;
var assessVal;
var impName;
var impVal;
//Get the name and value of the currently selected assessed input
$('[id^=ass]').on('keyup', function(){
assessName = $(this).attr('name').replace('ass-','');
assessVal = $(this).val();
});
//Get the name and value of the currently selected implemented input
$('[id^=imp]').on('keyup', function(){
impName = $(this).attr('name').replace('imp-','');
impVal = $(this).val();
});
console.log(assessName);
console.log(assessVal);
console.log(impName);
console.log(impVal);
});
这是因为
keyup
事件在您将变量写入控制台后发生更改。JavaScript中的事件是异步的
因此,如果您将您的
console.log
调用放入事件侦听器,它将准确地显示您期望的内容。$('[id^=imp]')。在('keyup',…)上只注册一个事件侦听器。它不会阻止脚本的执行并等待事件触发。将那些console.log()
s放入回调函数,它应该可以正常工作。啊!我对它工作原理的理解是错误的,但我现在知道了!今天学到了一些新东西。谢谢大家!@迈克尔-接受答案吗?@PastorBones我要等10分钟才能回答。别担心,我会在计时器用完后这样做。。。