全局变量不通过功能改变

时间:2013-10-30 22:15:18

标签: javascript

我正在尝试获取一个人当前在keyup上使用的输入框的值和名称,但是一旦keyup函数运行,我就无法更新全局变量。他们只是继续在Google Chrome开发者工具中说未定义。

我做错了什么?

$( 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);
            });

1 个答案:

答案 0 :(得分:3)

这是因为{/ 1}}事件在将写入控制台之后更改了keyup 。 JavaScript中的事件是异步

因此,如果您将variables调用放入事件监听器,它将准确显示您的期望。