gpt4 book ai didi

JQuery .on ('keydown' ,...) 未触发新元素

转载 作者:行者123 更新时间:2023-12-03 22:22:38 28 4
gpt4 key购买 nike

我查看了一些相关问题,但没有一个能帮助我解决我的问题。

我有自己的从头开始构建的动态数据网格表单,可以在其中添加/删除数据行和字段列等。我正在尝试提高可用性,以便按回车键将创建一个新的字段列并且给予重点关注。这是到目前为止执行此操作的代码:

$('#data_fields').on('keydown','._field',function(e){
if(e.which==13)
{
$('#addfield').click();
var o=$(this).parent().parent();
var l=$(o).children().length-2;
var f=$(o).find("td:eq("+l+")").find("._field");
$(f).focus();
}
});

#addfield 是一个单击时添加字段列的按钮。

._field是一个输入框,其中写入字段的名称。

#data_fields 是一个 tr,其中包含带有 ._field 输入框的单元格。

但是,新列中的._field 输入框不具有特殊的超元素 keydown 功能。更重要的是,如果我将 .on()('#data_fields') 选择器更改为 (document),它甚至不会为当前元素提供 keydown 回调。

这是 HTML,抱歉,它有点乱,但我在 PHP 中使用模板之类的:

<thead id="doc_fields">
<tr id="delrow">
<tr id="data_fields">
<td style="padding:2px"><input class="_field" type="text" onkeyup="sync_doc_table();" onchange="sync_doc_table();" style="width:90%" value="" name="Fields[]"></td>
<td style="padding:2px"><input class="_field" type="text" onkeyup="sync_doc_table();" onchange="sync_doc_table();" style="width:90%" value="b" name="Fields[]"></td>
<td style="padding:2px"><input type="text" style="width:90%" value="" name="Fields[]" onchange="sync_doc_table();"></td>
<td style="padding:2px"><input type="text" style="width:90%" value="" name="Fields[]" onchange="sync_doc_table();"></td>
<td id="addcol" class="midi" style="width:25px" rowspan="3">
<a id="addfield" onclick="inscol('#addcol','<td style=\'padding:2px\'><input onchange=\'sync_doc_table();\' type=\'text\' name=\'Fields[]\' value=\'\' style=\'width:90%\' /></td>');addcol('#typerow','<td><select name=\'Type[]\' style=\'width:91%\'><option value=\'integer\'>integer</option><option value=\'double\'>double</option><option value=\'string\' selected=\'selected\'>string</option></select></td>');addcol('#delrow','<td class=\'center _delly\'><a href=\'#\' onclick=\'del_doc_field($(this).parent());return false;\'><img src=\'/images/icons/x.png\' alt=\'[Del]\' /></a></td>');$('._colsp').attr('colspan', $('#addrow').attr('colspan') + 1);$('<td><input type=\'text\' name=\'Data[][]\' value=\'\' style=\'width:90%\' /></td>').insertBefore('.datarow ._delly');return false;" href="#">
</td>
</tr>
<tr id="typerow">
</thead>

最佳答案

据我所知,这是因为您要附加的输入类中没有 _field 类。

关于JQuery .on ('keydown' ,...) 未触发新元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14610312/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com