我正在尝试在我的视图中使用剑道网格,我想在按 Enter 键后在网格中创建新行。我可以通过编写以下代码来做到这一点:
<div id="GridContainer">
<div id="grid"></div>
</div>
$(document.body).keypress(function (e) {
if (e.keyCode == 13) {
var grid = $("#grid").data("kendoGrid");
grid.addRow();
}
});
问题是,在页面上,每当我按 Enter 时,它都会创建新行。但我只希望当网格聚焦时。我怎样才能做到这一点?我尝试将焦点应用于包含网格的 div,但没有成功。为了便于阅读,我跳过了生成剑道网格的代码。谢谢。
尝试这个,
HTML
<div id="grid" tabindex="0"></div>
or
<div id="grid" contenteditable="true"></div>
SCRIPT
$(document.body).keypress(function (e) {
if (e.keyCode == 13 && $("#grid").is(':focus')) {
var grid = $("#grid").data("kendoGrid");
grid.addRow();
}
});
Read 如何将键盘焦点赋予 DIV 并将键盘事件处理程序附加到它? https://stackoverflow.com/questions/148361/how-can-i-give-keyboard-focus-to-a-div-and-attach-keyboard-event-handlers-to-it
And
如果没有 div 的 tabindex 属性,Jquery .focus() 无法工作 https://stackoverflow.com/questions/5594431/jquery-focus-not-working-without-tabindex-attribute-of-div
Updated
Focus
the div
添加后再次row
, like,
$(document.body).keypress(function (e) {
if (e.keyCode == 13 && $("#grid").is(':focus')) {
var grid = $("#grid").data("kendoGrid");
grid.addRow();
$("#grid").focus();
}
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)