据我所知,我应该避免在 html 上使用内联 javascript 处理程序。例如onclick =“FUNCTION_NAME”。
如果我有一个动态生成的表格,则每一行都有一个自己的按钮。
如果我不使用 incline Javascript 函数,如何将一些参数从表传递到事件处理程序?
也许从表格单元格传递数据并不难。如果某些数据没有显示在表格单元格上(出于安全原因),例如,在应用程序内部使用的 secret ID 号,并且不应在 html 上公开(将其设置在表格中的不可见单元格中),该怎么办?不安全,因为了解 html 的人仍然可以检查它)。在这种情况下,我们如何将那些未显示在表上的数据从动态表传递到事件处理程序?
如果我们使用内联点击属性,即每行上的 onclick="javascript_function(parameter_1,parameter_2)",那么传递我想要的任何数据相当容易,并且我不需要在 html 上显示这些类型的安全数据为了通过它。
最佳答案
如果你使用 jQuery,我会推荐
<table class="with-val">
<td data-val="17">17 points</td>
</table>
和
$('.with-val').on('click', 'td', function() {
var val = $(this).data('val');
console.log(val) //17
});
这样(使用 on(eventType, selector, handler)
签名),如果行被删除或添加,您不必重置事件,
并且标记要轻得多(并且它被认为是最佳实践,因为您只需为整个表添加一个事件处理程序)。
关于javascript - 如何在没有内联 JavaScript 处理程序的情况下将参数从动态表传递到事件处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25811029/