jquery keyup错过了一次移位+&燃气轮机;如果I';我走得很快
每当我键入>,follow jquery代码就会将输入元素的值移到输出元素上:jquery keyup错过了一次移位+&燃气轮机;如果I';我走得很快,jquery,Jquery,每当我键入>,follow jquery代码就会将输入元素的值移到输出元素上: $(document).ready(function() { var input = $("#input"); var output = $('output[name="output"]')[0]; input.keyup(function(event) { if (event.which == 190 && event.shiftKey == true) {// 190 = ke
$(document).ready(function() {
var input = $("#input");
var output = $('output[name="output"]')[0];
input.keyup(function(event) {
if (event.which == 190 && event.shiftKey == true) {// 190 = key code
output.value = input.val();
}
});
});
但是,如果我真的很快,事件处理程序会错过一个>或两个,即使它在输入框中被正确捕获。我的代码中有缺陷吗?我实际上无法重现您的确切错误,但我感觉您看到的是输入'>'字符与事件处理程序执行时间之间的延迟。我使用了两个输入框,type=“text”,以及以下JS代码:
$(document).ready(function() {
var input = $("#input"),
output = $('#output');
input.keyup(function(event) {
if (event.which == 190 && event.shiftKey == true) {// 190 = key code
output.val(input.val());
}
});
});
当我快速输入字符时,有时会看到输出框得到最后一个'>'字符加上几个额外的击键。击键甚至可以是删除最后一个'>'的退格
在我看来,您不是简单地拉入input.val(),而是希望使用如下方式拉入输入值直到最后一个'>'字符:
input.keyup(function(event) {
if (event.which == 190 && event.shiftKey == true) {// 190 = key code
var val = input.val(),
lastIndex = val.lastIndexOf('>');
output.val(val.substr(0, lastIndex+1));
}
});
这里有一些关于lastIndexOf的文档,其中包括一个针对本机没有它的浏览器的解决方案:
我实际上无法重现您的确切错误,但我感觉您看到的是输入'>'字符与事件处理程序执行时间之间的延迟。我使用了两个输入框,type=“text”,以及以下JS代码:
$(document).ready(function() {
var input = $("#input"),
output = $('#output');
input.keyup(function(event) {
if (event.which == 190 && event.shiftKey == true) {// 190 = key code
output.val(input.val());
}
});
});
当我快速输入字符时,有时会看到输出框得到最后一个'>'字符加上几个额外的击键。击键甚至可以是删除最后一个'>'的退格
在我看来,您不是简单地拉入input.val(),而是希望使用如下方式拉入输入值直到最后一个'>'字符:
input.keyup(function(event) {
if (event.which == 190 && event.shiftKey == true) {// 190 = key code
var val = input.val(),
lastIndex = val.lastIndexOf('>');
output.val(val.substr(0, lastIndex+1));
}
});
这里有一些关于lastIndexOf的文档,其中包括一个针对本机没有它的浏览器的解决方案:
Hmmm,没有看到它。特定于浏览器?奇怪。。。我在Chrome上也有同样的行为。IE9甚至不起作用。根据en.wikipedia.org/wiki/Comparison\u of_layout\u engines\u(HTML5),IE9不支持输出标签。在IE9上得到了它。我仍然可以使用两个输入框和
output.val(input.val())复制相同的“遗漏”行为代码>嗯,没有看到它。特定于浏览器?奇怪。。。我在Chrome上也有同样的行为。IE9甚至不起作用。根据en.wikipedia.org/wiki/Comparison\u of_layout\u engines\u(HTML5),IE9不支持输出标签。在IE9上得到了它。我仍然可以使用两个输入框和output.val(input.val())复制相同的“遗漏”行为代码>