' Uncaught SyntaxError:Unexpected Token}'在尝试访问某个功能时

时间:2017-09-16 16:05:14

标签: 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在文件的其他地方定义(我是一个数字,名称是一个字符串)

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

每当我点击其中任何一个按钮时,Chrome都会引发Uncaught SyntaxError: Unexpected token } 我无法弄清楚它为什么这样做。任何和所有的帮助表示赞赏!

1 个答案:

答案 0 :(得分:1)

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

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

检查以下代码段:

&#13;
&#13;
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);
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="event_list"></div>
&#13;
&#13;
&#13;