如何在jquery中检查div是否有焦点?

时间:2013-07-10 07:01:07

标签: jquery asp.net-mvc-3 html kendo-grid

我正在尝试在视图中使用kendo网格,我想在按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,但没有运气。为了便于阅读,我跳过了代码来生成kendo网格。感谢。

1 个答案:

答案 0 :(得分:3)

试试这个,

<强> HTML

<div id="grid" tabindex="0"></div>

<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();
    }
});

阅读How can I give keyboard focus to a DIV and attach keyboard event handlers to it?Jquery .focus() not working without tabindex attribute of div

<强>更新

添加Focus之后再次{p> div row

$(document.body).keypress(function (e) {
    if (e.keyCode == 13 && $("#grid").is(':focus')) {
        var grid = $("#grid").data("kendoGrid");
        grid.addRow();
        $("#grid").focus();
    }
});