我有以下JavaScript对象:
function Project(name)
{
this.panel = $('#worksheet_panel');
this.name = name;
this.workBox =
'<div class="worksheet_box">'+
' <div class="list-group">'+
' <button class="btn btn-block btn-primary btn_work_add" onclick="setProject('+this.name+');" data-toggle="modal" data-target=".workModal">Add</button>'+
' </div>'+
'</div>'+
'</div>';
function changeName(name)
{
this.name = name;
}
this.addElement = function()
{
this.element =
'<div id="1" class="col-md-3 table-bordered worksheet_overall_box" draggable="true" ondragstart="drag(event)">'+
'<div class="table-bordered title_box">'+
'<h4 class="title text-center worksheet_title">'+name+'</h4>'+
'</div>'+
this.workBox;
this.panel.append(this.element);
}
}
现在你可以看到this.workbox
有一个调用此函数的onclick
函数:
function setProject(name) {
selected_project = projects[name];
}
现在,当我点击按钮时,我收到以下错误:
ReferenceError: asasa is not defined
setProject(asasa);
答案 0 :(得分:1)
查看生成的代码。它将类似于:
onclick="setProject(asasa);"
这意味着您正在尝试将变量 asasa
传递给该函数。这样的变量不存在。
看起来您想要传递包含该值的字符串,因此您必须添加引号:
' ... onclick="setProject(\''+this.name+'\');" ...'
以便生成的代码
onclick="setProject('asasa');"