我有一个 - 关于我的意见 - 真的很疯狂的问题。逻辑似乎很简单:但它不起作用:))
我已经提升了剧本的一小部分内容:
该片段用于即时搜索建议。
请模糊输入字段,打开控制台(firebug)并按arrowUp和arrowDown。
您将在控制台上看到一个变量,每次按下arrowUp / Down键1点时都应该添加或删除该变量。
但如果你“逆转”方向(例如arrowDown -arrowDown -arrowDown - arrowUp)计数器似乎无法正常工作。
var c = 0;
$('#h7_3').keypress(function(e) {
console.log('--------');
console.log('c = ' + c);
console.log('Key: = ' + e.keyCode);
console.log('--------');
if(e.keyCode == 38 || e.which == 38){ //38 = arrowUp
e.preventDefault();
}
if(e.keyCode == 40 || e.which == 40) { //40 = arrowDown
e.preventDefault();
}
});
$('#h7_3').keyup(function(e) {
if(e.keyCode == 38 || e.which == 38){ //38 = arrowUp
c--;
} else if(e.keyCode == 40 || e.which == 40) { //40 = arrowDown
c++;
}
});
我会非常高兴的一些提示: - )
问候,克里斯
答案 0 :(得分:0)
您需要将代码包装在ready()函数中,并且由于您要防止默认,因此不会触发后一个函数。此外,jQuery规范化e.which:
$(function() {
var c = 0;
$('#h7_3').on('keyup', function(e) {
if (e.which == 38 || e.which == 40) {
c = e.which == 38 ? c-1 : c+1;
console.log('--------');
console.log('c = ' + c);
console.log('Key: = ' + e.which);
console.log('--------');
e.preventDefault();
}
});
});