我有这样的jQuery结构:
$('#telefone').keyup(function (e) {
if (e.keyCode == 8) {
console.log('backspace')
return -1;
}
}).on("input", function () {
stuff();
}
我需要这样,因为如果我只是在keyup
上进行stuff(),则会出现一些问题,而在使用.on
的情况下却确实可以做到。关键是,如果用户按下“退格键”,我希望函数停止,我不想做stuff()。第一个块捕获用户是否按了退格键,并且效果很好,但是如何停止on
的运行?
我也试图做类似的事情:
$('#telefone').on("input", function () {
$('html').keyup(function (e) {
if (e.keyCode == 8) {
console.log('backspace')
return -1;
}
})
stuff()
}
但是它也不起作用。当按下退格键时,该函数可以捕获,但是return
不会停止on
函数。我该怎么办?
答案 0 :(得分:2)
只需设置某种标志
var isRunning = true;
$('#telefone').keyup(function (e) {
if (e.keyCode == 8) {
isRunning = false;
}
}).on("input", function () {
if (isRunning) {
stuff();
}
});
如果您需要在用户完成按键操作后重新激活stuff()
,请使用keydown
事件。
var isRunning = true;
$('#telefone').keydown(function (e) {
if (e.keyCode == 8) {
isRunning = false;
}
}).keyup(function (e) {
isRunning = true;
}).on("input", function () {
if (isRunning) {
stuff();
}
});
顺便说一句,您可以在单个.on()
调用中完成所有操作。
var isRunning = true;
$('#telefone').on({
keydown: function (e) {
if (e.keyCode == 8) {
isRunning = false;
}
},
keyup: function (e) {
isRunning = true;
},
input: function () {
if (isRunning) {
stuff();
}
}
});