gpt4 book ai didi

jquery - jquery 行为不一致

转载 作者:行者123 更新时间:2023-12-01 03:04:29 25 4
gpt4 key购买 nike

我有一个不寻常的 JavaScript 问题,我有一个交替拒绝工作的 JavaScript 问题。基本上,在第一次单击时,jquery 函数将按其应有的方式工作,删除表格行并重新绘制表格行:

$(".deleteRow").click(function(e){
if(confirm("This will delete the selected week. Are you sure?")){
$.ajax({
type: 'POST',
url: 'http://localhost/todo/index.php/home/ajax_delete',
data: { page_id : $(this).attr('id') },
success: tableRedraw,
dataType: 'html'
})
};
e.preventDefault();
})

但是,如果我单击再次触发此操作的按钮,它就不起作用。它不是通过 javascript 函数,而是跟随链接(专为非 javascript 模式设计)。我无法理解这种不寻常的行为,我可能认为这是由 jquery 源不可用(出于某种未知原因)引起的,但我有另一个函数可以将行添加到表中,可以连续使用多次,而无需问题:

$("#addRow").click(function(e){
$.ajax({
type: 'POST',
url: 'http://localhost/todo/index.php/home/ajax_add',
success: tableRedraw,
dataType: 'html'
})
e.preventDefault();
})
})

任何帮助将不胜感激。

最佳答案

我猜这与您的 tableRedraw 方法有关。如果它实际上破坏了表格并重新绘制了整个表,那么您也会破坏对 jQuery 托管事件处理程序的任何引用。

我猜 #addRow 继续工作的原因是它实际上并不是正在重绘的表的一部分,或者以某种方式免于被破坏。

我不知道您的代码要求是什么,但仅仅为了添加/删除一行而销毁并重绘整个表似乎很浪费(如果确实发生了这种情况)。相反,只针对需要操作的单个行似乎会更好。

关于jquery - jquery 行为不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3928313/

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