2013-07-10 70 views
2

我想在我的視圖中使用kendo網格,我想在按Enter鍵後在網格中創建新的行。我可以寫下面的代碼做到這一點:如何檢查一個div是否專注於jquery?

<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網格的可讀性。謝謝。

回答

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

更新

Focusdiv再次加入row一樣,

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

可以請你幫我多一點之後?每次按下回車鍵我都需要創建新的行。但使用當前的代碼,按下一次後,它不會創建任何行。如果我沒有錯,它將失去對電網的關注。我如何保持焦點? –

+0

意味着你想'行'的''加''會'只觸發一次? –

+0

不,我想在每次用戶按下輸入按鈕時觸發事件,但僅在他使用網格時,即網格處於焦點。 –

相關問題