我有一个功能,可以填充多个按钮,每个按钮都有自己的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 }
我无法弄清楚它为什么这样做。任何和所有的帮助表示赞赏!
答案 0 :(得分:1)
由于您使用单引号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);
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="event_list"></div>
&#13;