2017-09-16 43 views
0

我有填充多個按鈕的功能,每一個都有自己的onclick功能:「未捕獲的SyntaxError:意外的標記}」嘗試訪問功能時

$("#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); 
} 

每當我點擊這些按鈕,鍍鉻拋出一個Uncaught SyntaxError: Unexpected token } 我想不通爲什麼它做到這一點。任何和所有的幫助表示讚賞!

+0

創建一個小提琴和你的問題鏈接到它 – gefei

+0

我強烈推薦像eslint這樣的靜態代碼分析器來幫助發現和診斷這些問題。特別是如果你爲你的IDE使用插件! –

回答

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

+0

這有效!非常感謝。 – pyro97

+1

很好的答案。此外,如果在ES6中工作,則可以使用模板文字語法來使可變插值更容易一些,如下所示: 'const myHtml = \' \';' –

+0

@DuncanThacker我實際上會將'onclick'改爲'$(...)。click(func)'以避免出現這樣的問題:)成爲第一個我會改變的... – Dekel

相關問題