[英]Why this onClick function is not being created properly using Javascript?
我在调用 JS function 时创建了新按钮,但我认为我在 onclick 事件处理程序中对 object 进行字符串化的方式有问题,我将其作为参数传递:
...
var edit_button = '<button type="button" id="buttons" onclick="edit_admin_request(this,\'' + JSON.stringify(edit_admin_object) + '\')" name="edit_admin">Edit</button>';
var rowNode = myTable.row(window.rowindex).data([edit_button]).draw();
...
创建此按钮时,当我尝试单击它时,它根本不会调用edit_admin_request(this_,data_)
function。
如果我尝试传递一个简单的字符串而不是字符串化的 object onclick="edit_admin_request(this,\'' + ["a string inside if an array"] + '\')"
,这可行,我可以调用edit_admin_request(this_,data_)
function。
我不明白为什么会这样?!
更新:这是我显示按钮的行(注意:我使用的是动态表,所以这一行在 foreach 循环内):
<td>
<div id="edit_button_row" class="edit_button_row">
<button type="button" class="edit_admin" id="buttons" onclick='edit_admin_request(this,<?php echo json_encode($user); ?>)' name="edit_admin">Edit</button>
</div>
</td>
因此,在阅读评论后,我将发布我的发现作为答案
<td class="datacell"><?php echo $user["name"]; ?></td>
$("#tableID").on("click",".edit-admin",function(e) {
const $row = $(this).closest("tr");
const data = $row.find(".datacell").text().trim(); // in case the PHP addes spaces
edit_admin_request(this,data);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.