2010-12-14 26 views
16

我有一個keydown事件,我正在使用它將一個空行添加到表中。 但是我只希望在遊標位於表的最後一行時發生keydown事件時添加新行。如何判斷您目前是否在HTML表格的最後一行?

這是我目前的jQuery事件。 .glCreditValue是駐留在表格行最後一個TD中的輸入文本框的類。 因此,當用戶跳出該輸入時,如果輸入在裏面的TD在表格的最後一行,我想添加一個新行。

由於表格數據是動態生成的,所以每行的最終TD都有一個帶有.glCreditValue類的輸入文本框。

$(".glCreditValue").keydown(function(event) { 
     var keycode = event.keyCode; 
     if (keycode == 9) { 
      //HERE i would like to make sure that i'm in the last row of the table 
      AddNewRow(); 
     } 
    }); 

我想使用TR:最後選擇器,但我不知道從哪裏走。

+0

你想處理整個最後一行的點擊,還是隻處理最後一行的最後一列? – Emmett 2010-12-14 21:51:47

+0

只是最後一列,這就是爲什麼我只能指定.glCreditValue keydown。 只有每行最後的TD中的輸入文本框分配給它們。 – 2010-12-14 21:54:16

回答

29

有幾個方法可以做到這一點,例如,你可以檢查.closest()<tr>,看看它是否.is()一個:last-child,像這樣:

$(".glCreditValue").keydown(function(event) { 
    if (event.which == 9 && $(this).closest("tr").is(":last-child")) { 
     AddNewRow(); 
    } 
}); 
+0

這個伎倆!謝謝!我會'接受',因爲我在大約6分鐘內答覆我的時候,哈哈。 – 2010-12-14 21:53:51

+0

@邁克爾 - 歡迎:) – 2010-12-14 21:54:11

+0

@尼克恨疏浚一個較舊的問題,但它是有用的/建議添加一個檢查的shift鍵到條件?這將阻止「製表符」離開觸發條件,不是?真棒的回答,不管...:] – 2011-12-15 05:23:35

相關問題