我有一个网页,列出了某个服务器的所有数据库记录。 每一行都有几个按钮,允许您重命名或删除记录。
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! (Can I add custom attribute to HTML tag?)
我唯一能想到的是将数据放入id属性然后解析它,但这看起来非常hackish。
有更好的方法吗?
答案 0 :(得分: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);
});