gpt4 book ai didi

javascript - 为什么这个 jquery 脚本在更新表时创建多个警报

转载 作者:行者123 更新时间:2023-11-30 17:43:02 24 4
gpt4 key购买 nike

我有一个小脚本(我是一个业余爱好者),它允许通过单击并更新弹出窗口来更新 a 的文本。它有效,但是当我测试它时,我注意到每次我单击 a 时,它似乎都包含上次的信息,这意味着每次我单击 td 时,脚本运行时间更长(通过警报触发看到第一次点击一次,第二次点击两次,依此类推)。我假设它与 $(this) 有关。是的,我知道有一个表更新插件,但对于我的用户将进行的三到四次编辑来说,它太过分了。这是代码和一个 jsfiddle http://jsfiddle.net/alsosun/QuLQH/1/ :

// clicking on a TD cell to update it
$('td').on('click', function () {

$('#pop').popup('open');
var cell = $(this).text();
var org = $(this);
$('#txt').val(cell);

$('#close').on('click', function () {

var TXT = $('#txt').val()
alert(TXT)
$(org).text(TXT)
org = ""
});

});

我必须添加 org = ""才能使其正常工作——不确定为什么。脚本运行后是否应销毁所有 var?

这是 html:

<table border="1">
<tr>
<td>click</td>
<td>this</td>
</tr>
<tr>
<td>thought</td>
</tr>
</table>
<div id="pop" data-role="popup">
<input id='txt'></input> <a href='#' data-role='button' data-rel="back" id='close' </div>

最佳答案

#close 的绑定(bind)移动到您的 td 处理程序之外,否则当您单击 td 时它会一直重新绑定(bind),因此多个细胞更新!我还使 org 成为全局变量,每当单击 td 时,都会为 this 分配适当的值。最终代码:http://jsfiddle.net/QuLQH/2/

var org;
$('td').on('click', function() {
$('#pop').popup('open');
var cell = $(this).text();
org = $(this);
$('#txt').val(cell)

});

$('#close').on('click', function(event) {
var newTXT = $('#txt').val()
//alert(newTXT)
$(org).html(newTXT)
});

关于javascript - 为什么这个 jquery 脚本在更新表时创建多个警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20667573/

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