在keypress()事件中设置变量并在keyup()事件中获取一个变量

时间:2013-10-30 04:39:21

标签: jquery keypress keyup

我有一些代码,我将 .keypress() .keyup()事件结合起来:

    $(this).on('keypress keyup', function (e) {
        var layout = 'undefined';
        if (e.type == "keypress") {
            // set layout
            layout = 'en';    
        } else {
            // use layout
            alert(layout);
        }
    });

我们知道订单是 .keydown() - > .keypress() - > .keyup()即可。但在 .keyup()事件变量layout始终为undefined

我做错了什么?

3 个答案:

答案 0 :(得分:2)

layout变量移到事件函数之外 - 您将每个事件重置为'undefined'

var layout = 'undefined';
$(this).on('keypress keyup', function (e) {
    if (e.type == "keypress") {
        // set layout
        layout = 'en';    
    } else {
        // use layout
        alert(layout);
    }
});

答案 1 :(得分:1)

使您的layout变量全局

var layout = 'undefined';
$(this).on('keypress keyup', function (e) {
    if (e.type == "keypress") {
        // set layout
        layout = 'en';    
    } else {
        // use layout
        alert(layout);
    }
});

答案 2 :(得分:1)

试试这个,

<强> HTML

<input />

<强> SCRIPT

 var layout = 'undefined';
 $('input').on('keypress keyup', function (e) {
     if (e.type == "keypress") {
         // set layout
         layout = 'en';
     } else {
         // use layout
         alert(layout);
     }
 });

Demo