我有一些代码,我将 .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
。
我做错了什么?
答案 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);
}
});