【发布时间】:2020-05-21 06:15:27
【问题描述】:
我有一个由数据库使用 php 自动生成的四行表...最后一行 (4) 有一个按钮来触发下面的函数...它对每一行重复。
单击按钮后...脚本发送更新数据库的请求以将状态“挂起”切换为“已取消”。
此时一切都很好......但是......当我用表格“$('#lista').load(location.href +'#lista> *');”刷新div时
脚本在加载后第二次不起作用。 (div 更新没问题,但只能工作一次)
我需要脚本在第一次刷新后工作......每次我点击行按钮......
我认为这可能是 ajax 请求和 javascript 不兼容。
如果你能帮助我,我真的很感激。 谢谢大家。
<script>
var index, table = document.getElementById('table');
for(var i = 1; i < table.rows.length; i++)
{
table.rows[i].cells[4].onclick = function()
{ //inicio da função
var c = confirm('Você quer cancelar essa aula?');
if(c === true)
{//inicio confirmador
var table = document.getElementById('table');
index = this.parentElement.rowIndex;
value_index_id= table.rows[index].cells[0].innerHTML;
var id = value_index_id;
$.ajax({
type: 'GET',
url: 'cancelar_aulas.php',
data: {id_geral:id},
success: function(data){
alert(data);
$( '#lista' ).load(location.href + ' #lista > *' );
}
})
} //fim do confirmador
//validador
//console.log(index);
//console.log (value_index_id);
console.log(id);
};//fim da função
}
</script>";
【问题讨论】:
-
您在开始时获得表长度(可能是在页面加载时),但是当您获得新数据时您不会更新它。我敢打赌 onclick 事件处理程序根本没有附加到新行。
-
不...它不再触发
-
如果我不加载 div .... 只需刷新所有页面...效果很好...但我需要一些动态的东西...此代码有效...但如果我不刷新。 ..我不能再这样做了
-
我不知道...我猜我必须使用...jquery live() 或delegate() ...我不知道该怎么做...
-
您可能没有将侦听器附加到新元素上。如果是这种情况,您需要查看委托事件。基本上不是监听元素本身,而是监听容器内的元素发生的事件。
标签: javascript jquery ajax