javascript - 如何在没有内联 JavaScript 处理程序的情况下将参数从动态表传递到事件处理程序

标签 javascript jquery html onclick

据我所知,我应该避免在 html 上使用内联 javascript 处理程序。例如onclick =“FUNCTION_NAME”。

如果我有一个动态生成的表格,则每一行都有一个自己的按钮。

  1. 如果我不使用 incline Javascript 函数,如何将一些参数从表传递到事件处理程序?

  2. 也许从表格单元格传递数据并不难。如果某些数据没有显示在表格单元格上(出于安全原因),例如,在应用程序内部使用的 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/

相关文章:

javascript - 如何根据纯 Javascript 中的区域设置确定一周是从星期一还是星期日开始?

jquery - 水平居中对齐嵌套 ul li

javascript - jQuery 将一个元素转换为另一个元素

html - Foundation 6 粘性布局在移动设备中损坏

php - Joomla 3.1 覆盖库

javascript - 在 Fullcalendar 中拖动时如何链接两个事件?

javascript - $ajax webservice 在 webfarm 场景中失败

javascript - 下拉菜单 - 选择 2 个不同下拉菜单时值发生变化

javascript - 以 YYYYMM 日期格式设置月份的最后一天 - Javascript

javascript - 能够在向下滚动弹出窗口时访问内容