Javascript 无法获得。依靠按键工作生活。。。有什么建议吗?
我试着用.on代替,但没有一个有效。代码在非活动时工作 有人能帮我一下吗?我通过ajax请求和qspholder类循环出一个列表,这段代码应该允许我使用箭头键选择并单击列表中的项目,然后输入。然而,由于某些原因,当我试图活生生地做这件事时,我似乎无法让它发挥作用。在提交和检索值之后,我将其放在带有.htmldata的div中。此代码不在加载源的页面上,而是在我加载到的页面上。有谁能给我一些建议,让我如何让这个工作?多谢各位Javascript 无法获得。依靠按键工作生活。。。有什么建议吗?,javascript,jquery,delegates,live,Javascript,Jquery,Delegates,Live,我试着用.on代替,但没有一个有效。代码在非活动时工作 有人能帮我一下吗?我通过ajax请求和qspholder类循环出一个列表,这段代码应该允许我使用箭头键选择并单击列表中的项目,然后输入。然而,由于某些原因,当我试图活生生地做这件事时,我似乎无法让它发挥作用。在提交和检索值之后,我将其放在带有.htmldata的div中。此代码不在加载源的页面上,而是在我加载到的页面上。有谁能给我一些建议,让我如何让这个工作?多谢各位 $(window).live("keydown", function(e
$(window).live("keydown", function(e){
var liSelected;
var li = $('.qspholder');
$('.qspholder').removeClass('selected');
if(e.which === 40){
if(liSelected){
liSelected.removeClass('selected');
next = liSelected.next();
if(next.length > 0){
liSelected = next.addClass('selected');
}else{
liSelected = li.eq(0).addClass('selected');
}
}else{
liSelected = li.eq(0).addClass('selected');
}
}else if(e.which === 38){
$('.qspholder').removeClass('selected');
if(liSelected){
liSelected.removeClass('selected');
next = liSelected.prev();
if(next.length > 0){
liSelected = next.addClass('selected');
}else{
liSelected = li.last().addClass('selected');
}
}else{
liSelected = li.last().addClass('selected');
}
} else if(e.which === 13) {
liSelected.click();
}
});
这是可行的,请将其应用到您的代码中
$(document).on("keydown", function(e){alert(e.keyCode);});
应用于原始代码时,也更改了IF to开关
您使用的是哪个版本的jQuery?出于好奇,将键盘功能保留在live中有什么好处?我通常不会这样做,即使页面上有AJAX元素,它也可以正常工作。例如,如果删除/移动具有onclick的元素,事件将被删除,并且不会触发。使用.live时,即使元素被移动、替换等,均衡器也会继续使用。使用live的目的是什么?我希望,HTML文档不能有多个窗口/文档。!您只需使用$document.keydown函数{}???@Bharath我同意您的看法,这里没有使用.live,因为这是一个与文档而不是元素相连接的事件。
$(document).on("keydown", function (e) {
var liSelected;
var li = $('.qspholder');
$('.qspholder').removeClass('selected');
switch (e.keyCode) {
case 40:
if (liSelected) {
liSelected.removeClass('selected');
next = liSelected.next();
if (next.length > 0) {
liSelected = next.addClass('selected');
} else {
liSelected = li.eq(0).addClass('selected');
}
} else {
liSelected = li.eq(0).addClass('selected');
}
break;
case 38:
$('.qspholder').removeClass('selected');
if (liSelected) {
liSelected.removeClass('selected');
next = liSelected.prev();
if (next.length > 0) {
liSelected = next.addClass('selected');
} else {
liSelected = li.last().addClass('selected');
}
} else {
liSelected = li.last().addClass('selected');
}
break;
case 13:
liSelected.click();
break;
}
});