-1

我需要自动重写触发函数的链接(动态编写)并将其转换为不显眼的 JavaScript 代码。

例子:

link_to_function 'hey', "alert('hey')"

变成:

<a href='#' onclick="alert('hey')"> hey </a>

我的想法是在 HTML 元素中进行引用,并在 JS 中创建一个对象来存储所有相关代码。然后将前一个示例转换为一个更简洁且不显眼的示例:

<a href='#' data-href='rndReference'> hey </a>

在 JS 中(code变量是我从标记中删除的 JS 代码):

storageCode[rndReference] = new Function(code)

每个代码字符串都通过一个 new 传递Function(code),以便将其作为函数调用。

这种方法有什么问题?什么方法会更好?

4

1 回答 1

0

这是完成此操作的正常方式。

<a href='#' onclick="alert('hey')"> hey </a>

变成:

<a href='#' data-role='alert'> hey </a>

然后在CoffeeScript文件中:

$ ->
  $("a[data-role='alert']").on("click", (event) ->
    event.preventDefault()
    alert("hey")
  )

或者,如果您不喜欢 CoffeeScript:

$(document).ready(function() {
  $("a[data-role='alert']").on("click", function(event) {
    event.preventDefault();
    alert("hey");
  });
)
于 2013-07-11T16:15:33.607 回答