javascript - '未捕获的语法错误 : Unexpected Token }' when trying to access a function

标签 javascript jquery event-handling

我有一个填充多个按钮的函数,每个按钮都有自己的 onclick 函数:

$("#event_list").append(
          "<button type='button' onClick='showInfo("+i+",'"+name+"')'> Event:<br>"+events_arr[i][2]+"<br> Organizer:<br>"+events_arr[i][1]+"</button>"
        );

函数 showInfo 在文件的其他地方定义(i 是数字,name 是字符串)

function showInfo(i, name)
{
  console.log("showInfo works");
  //makeTable12(i, name);
  //makeTable24(i);
}

每当我点击这些按钮中的任何一个时,Chrome 都会抛出一个 Uncaught SyntaxError: Unexpected token } 我不明白为什么它会这样做。感谢任何和所有的帮助!

最佳答案

由于您用单引号 ' 包裹了 onclick 内容,因此您应该用双引号包裹函数的参数(但请注意,您应该转义它们):

 onClick='showInfo("+i+",\""+name+"\")'

检查以下代码片段:

i = 0;
name = 'test';
events_arr = [['', '', '']];
$("#event_list").append(
  "<button type='button' onClick='showInfo("+i+",\""+name+"\")'> Event:<br>"+events_arr[i][2]+"<br> Organizer:<br>"+events_arr[i][1]+"</button>"
);

function showInfo(i, name)
{
  console.log("showInfo works");
  //makeTable12(i, name);
  //makeTable24(i);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="event_list"></div>

关于javascript - '未捕获的语法错误 : Unexpected Token }' when trying to access a function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46255828/

相关文章:

jQuery:第一级 li 标签的计数(不包括 decendent ul > li 标签)

javascript - 以编程方式模拟点击/更改 aria (netflix) slider 的值

jQuery 滚动对吗?

javascript - 自定义确认框,具有一些带有窗口关闭事件的功能

javascript - 为什么调用这个返回的函数而不对其值进行任何操作?

java - 使用 Ajax 上传文件 - 未获取完整的文件名

javascript - jQuery - 检测是否已选择 HTML 选择选项的事件处理程序

c# - 注册表观察器 C#

javascript - 如何为在 javascript 函数中创建的下拉菜单提供多个选择选项

javascript - Angular + Requirejs - 如何返回多个模块?