javascript - 在 onClick 中传递数据的替代方案?

标签 javascript jquery

我有一个网页,其中列出了某个服务器的所有数据库记录。 每行旁边都有一些按钮,可让您重命名或删除记录。

INPUT( _value='Rename', _type="button", _class='appbutton', _onclick='renameApplication({0},"{1}")'.format(app.id,app.name))

这会生成类似以下内容的内容:

<input class="appbutton" type="button" value="Rename" onclick="renameApplication(3,"My Application")"></input>

(后端模板引擎是 web2py,但这并不重要。)

我正在动态生成这些按钮。目前我通过onClick传递每个按钮需要的数据。

根据jQuery.click() vs onClick我不应该再这样做了。但如果是这种情况,我应该如何传递数据,以便每次按钮单击都可以使用服务器端写入的动态数据(本例中的应用程序 ID 和名称。)

我无法通过记录进行 dom 遍历来获取数据,因为行结构可能会发生变化。

我无法使用自定义属性,因为我需要支持低于 HTML 5 的版本,而且我不会修改文档类型! (Can I add custom attribute to HTML tag?)

我唯一能想到的就是将数据放入 id 属性中然后解析它,但这看起来很hackish。

有更好的方法吗?

最佳答案

您可以尝试使用jQuery on将事件 Hook 到每个按钮上。您可以将服务器 ID 放入 jQuery 可以理解的数据属性中,不会出现重大问题:

<input class="appbutton" type="button" value="Rename" data-id="3"></input>

然后是js:

$('#container').on('click', '.appbutton', function () {
  var serverId = $(this).data('Id'); //this binds to html input
  renameApplication(serverId);
});

关于javascript - 在 onClick 中传递数据的替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15143610/

相关文章:

javascript - 如何在jquery中的选择下拉列表中获取选项文本

javascript - jQuery:触发粘贴?

javascript - 从java到typescript的代码片段

javascript - 如何让JS函数不被自调用?

javascript - 通过 ReactJS 中的 .getUserMedia 访问网络摄像头后,单击断开网络摄像头连接

javascript - 如何将文本框放入表格数据中,其中的行已从另一个表格附加/移动?

javascript - Controller 中未定义的 Ng-model

javascript - 引用 enzyme 导入错误

jquery - jqGrid - 如何使分页按钮更大?

javascript - 使用 jQuery 和 PHP 问题的动态依赖选择框