[英]event handler on dynamically added element not working with select2 plugin
[英]Keypress event on dynamically added element is not working
我有一個動態添加的表。 keypress
事件不適用於tr
和td
。 該事件未被解雇。 但是,如果我使用table
或類'.loaded-table'
這樣的table
它就會觸發。 這是我的代碼。
$(document).on("keypress", '.loaded-table tr', function (event) {
var key = event.which;
if(key === 13){
event.preventDefault();
alert();
}
});
這是動態加載表的HTML
代碼。
<table contenteditable="true" class="table table-bordered loaded-table">
<thead>
<tr>
<th>id</th>
<th>name</th>
<th>father_name</th>
<th>dob</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>John</td>
<td>Robert</td>
<td>12-04-1992</td>
</tr>
</tbody>
</table>
我不認為我在選擇事件的元素時遇到問題。 你可能知道的更好。 謝謝
您需要從表標記中刪除contenteditable="true"
並將其添加到tr
或td
以便允許觸發按鍵事件。 在這個例子中,我已經為我想要觸發按鍵事件的所有tds添加了contenteditable="true"
。
$('body').on("keypress", '.loaded-table tr td', function(e) { var keyC = e.keyCode; if (keyC == 32) { alert('Enter pressed'); } });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <body> <table class="table table-bordered loaded-table"> <thead> <tr> <th>id</th> <th>name</th> <th>father_name</th> <th>dob</th> </tr> </thead> <tbody> <tr> <td contenteditable="true">1</td> <td contenteditable="true">John</td> <td contenteditable="true">Robert</td> <td contenteditable="true">12-04-1992</td> </tr> </tbody> </table> </body>
或者只使用<input>
元素
<tr><td><input type="text"></td>....</tr>
這也有效。 注意,
在.loaded-table
。
$(document).on("keypress", '.loaded-table, tr', function(e) {
var keyC = e.keyCode;
if (keyC == 32) {
alert('Enter pressed');
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.