0

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

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,而且我不会修改 doctype!(我可以在 HTML 标签中添加自定义属性吗?

我唯一能想到的就是将数据放入 id 属性中然后解析它,但这似乎很骇人听闻。

有没有更好的办法?

4

1 回答 1

3

您可以尝试使用jQuery on将事件挂接到每个按钮上。您可以将服务器 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);
});
于 2013-02-28T19:14:10.270 回答