gpt4 book ai didi

javascript - onSelectRow 方法中的 Keydown 事件

转载 作者:行者123 更新时间:2023-11-29 22:05:18 25 4
gpt4 key购买 nike

我的 JQuery 网格中有这段代码:

onSelectRow:function(rowid){
var r=$("#myGrid").getRowData(rowid);
var col1 = r.column1;
$("#myGrid #"+rowid).keyup(function(e) {
if(e.keyCode == 46) {
alert(col1);
}
});
}

我的实际目的是在键盘上按下 [delete] 键时删除数据库中选定的行记录。

我正在使用 alert() 测试代码,如上面给定的代码。

问题是,每当我多次点击同一行时,比如 4 次,然后按单个 [delete] 键,警报弹出 4 次。但是,当我单击 4 个不同的行,然后按单个 [delete] 键时,它工作正常。

这是对这种情况的说明(单击行,然后是 [delete]):

   clicked row(in sequence)                alert popups   

row1 ->[delete] row1
row1, row2, row3, row4 ->[delete] row4
row1, row1, row1, row2 ->[delete] row2
row1, row2, row3, row3 ->[delete] row3, row3
row1, row2, row2, row2 ->[delete] row2, row2, row2
row1, row1, row1, row1 ->[delete] row1, row1, row1, row1

为什么以及如何克服这个问题?或者也许有另一种更好的方法来做到这一点?

最佳答案

是的,每次您选择一行时,您都在注册一个按键事件监听器。也许你应该像这样取出你的 keydown 事件处理程序:

$("#myGrid tr").keyup(function(e) {
var rowid = parseInt($(this).attr("id"));
var r=$("#myGrid").getRowData(rowid);
var col1 = r.column1;
if(e.keyCode == 46) {
alert(col1);
}
});

编辑:如果您的网格是动态生成的:

$("#myGrid").on("keyup", "tr", function(e) {
var rowid = parseInt($(this).attr("id"));
var r=$("#myGrid").getRowData(rowid);
var col1 = r.column1;
if(e.keyCode == 46) {
alert(col1);
}
});

您可能需要以某种方式检查该行是否已被选中。

关于javascript - onSelectRow 方法中的 Keydown 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21303344/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com