连接变量和函数名称

use*_*abc 1 html javascript jquery hyperlink

我们要连接函数名称和变量名称。单击<a>标签应发生这种情况。

我们如何连接函数和变量名?

问题:

  • 我们收到错误消息fn_dataId()未定义

所需的输出:

fn_dataId() should be fn_some123();

我们尝试了什么

$(function() {
    $('.link').on('click', function() {
      console.log('clicked');
      var dataId = $(this).attr('data-id');
      console.log('data id - ' + dataId);
      
      // What we tried, but didn't work. 
      fn_dataId(); 
    });
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a data-id="some123" class="link">
Click here
</a>
Run Code Online (Sandbox Code Playgroud)

MrG*_*eek 5

您可以连接字符串,并将结果用作以下函数window["function_name"](args);

function fn_some123() {
  console.log('i have been called!');
}

$(function() {
    $('.link').on('click', function() {
      var dataId = $(this).attr('data-id');
      window['fn_' + dataId]();
    });
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a data-id="some123" class="link">
Click here
</a>
Run Code Online (Sandbox Code Playgroud)