您可以把它放在一个循环,通过给予处理事情时可以关上不会改变,就像一个参数的函数叫你做:
rowid.forEach(function(value) {
$('#btndelete' + value).click(function() {
$.ajax({
type: "POST",
url: "delete.php?id=" + value,
success: function(a) {
$('#div-content').html(a);
}
});
});
});
(如果rowid
不是数组,可以很容易使之与一个Array.from
[ES2015,但shimmable]或Array.prototype.slice.call(rowid)
。)
更多细节在这里:JavaScript closure inside loops – simple practical example。
但是,在这种特殊情况下,您不需要创建一堆处理函数;把rowid[i]
的元素,然后使用一个处理程序为所有这些:
rowid.forEach(function(value) {
$("#btndelete" + value).data("rowid", value);
});
$("[id^=btndelete]").click(function() {
$.ajax({
type: "POST",
url: "delete.php?id=" + $(this).data("rowid"),
success: function(a) {
$('#div-content').html(a);
}
});
});
现在,单个处理程序处理所有的人。
或如果这些按钮是动态添加/删除的,则可以在某个容器上使用事件委托。
@Daan,一天结束时,它们仅附加在循环中;) – Rayon
使用'class selector' /'任何选择器',它将返回集合。 – Rayon
难道你不能只保存一个变量的所有rowid值(可能b阵列)n在控制器端传递 – Dhara