如何使用Javascript创建带有动态参数onclick事件的按钮?

问题描述

我有一个DataTable及其上面的一些行。每行都有一个“编辑”按钮,每个“编辑”按钮都调用myFunction(),在此仅编辑该行的数据。问题出在这里:我先编辑一行,然后再编辑第二行,然后尝试再次编辑第一行,但是它包含onClick事件参数中第一行的数据。

edit_admin_request(this_,data_){
  //open modal and edit the users data. Modal has a button which when clicked calls myFunction()
}

edit_admin_object = {}; //this is defined outside of the function

function myFunction(){
   ...

   edit_admin_object['name'] = name_.value;
   edit_admin_object['email'] = email_.value;
   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(['<b>' + name_.value + '</b>',admin_role.value == '0' ? 'Admin' : 'Superadmin',phone_.value,email_.value,location_name,edit_button]).draw()

   ...
 }

我想我知道问题出在哪里,但我不知道如何解决edit_admin_object对象是全局定义的,然后每个创建的按钮都使用相同的对象。但是在这种情况下,我还能做什么呢?!

更新: 我想我现在对哪里出了问题有了更好的线索。创建新按钮时,可能是字符串语法。

新的更新。

我更接近问题了,现在我可以肯定地知道将对象字符串化并将其作为参数传递的方式了。

var edit_button = '<button type="button" id="buttons" onclick="edit_admin_request(this,\'' + JSON.stringify(edit_admin_object) + '\')" name="edit_admin">Edit</button>';

P.S。查看我所做的语法更改。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)