gpt4 book ai didi

javascript - Dblclick 监听器在我的代码中仅触发一次

转载 作者:行者123 更新时间:2023-12-03 05:18:45 31 4
gpt4 key购买 nike

我是 Javascript 新手,我开发了以下代码,该代码只能运行一次。

function display(arr) {
$(".tbl tbody").empty();
for (i = 0; i < arr.length; i++) {
$(".tbl tbody").append('<tr class="tblrow" id = "'+i+'"> <td><input id="editInput" type="text"/>'+arr[i].Empid+'</td><td>'+arr[i].name+'</td><td>'
+arr[i].pd+'</td><td>'+arr[i].unplannedleaves+'</td><td>'+arr[i].response_time+'</td><td class = "tt"><button class="delbtn" id ="btn'+i+'">Delete</button></td></tr>');

$("td").css("text-align", "center");
$("td").css("border", "1px solid black");
$(".tt").css("border", "none");
$(".tbl").css("border", "none");
$(".delbtn").css("display", "none");
}
}

$("tr").on('dblclick', function() {
var s = this.id;
$("#btn" + s).css("display", "block");
});

$(".delbtn").click(function() {
var s = this.id;
var k = s.slice(3);
arr.splice(k, 1);
display(arr);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="addelem">
<table class="tbl1">
<tr>
<td>
<input id="empid" type="text" placeholder="EmpId">
</td>
<td>
<input id="name" type="text" placeholder="Name">
</td>
<td>
<input id="pd" type="number" placeholder="Pds Delivered">
</td>
<td>
<input id="unp" type="number" placeholder="Unplanned leaves">
</td>
<td>
<input id="rsp" type="number" placeholder="Response Time">
</td>
</tr>
</table>

<button id="submit">Submit</button>
<button id="cancel">Cancel</button>

</div>

使用display方法显示我的表格后。我第一次双击一行时,它按预期工作并显示删除按钮。我单击“删除”,该行被删除,并且该表被重新呈现。然而,此后该行不再可双击。我尝试调试,但控件甚至无法进入 dblclick 监听器。

谁能解释一下为什么会这样。这里出了什么问题?

最佳答案

像这样绑定(bind)你的 tr 元素:

$(document).on('dblclick', "tr", function() {
var s = this.id;
$("#btn" + s).css("display", "block");
});

它将通过您的 dblclick 事件动态订阅任何新的 tr

关于javascript - Dblclick 监听器在我的代码中仅触发一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41486999/

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