带参数的javascript onclick函数
我有以下JavaScript对象:带参数的javascript onclick函数,javascript,Javascript,我有以下JavaScript对象: function Project(name) { this.panel = $('#worksheet_panel'); this.name = name; this.workBox = '<div class="worksheet_box">'+ ' <div class="list-group">'+ ' <button class="
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);
}
}
现在,每当我单击按钮时,都会出现以下错误:
ReferenceError: asasa is not defined
setProject(asasa);
查看生成的代码。它将类似于:
onclick="setProject(asasa);"
这意味着您正试图将变量ASASASA
传递给函数。这样的变量不存在
看起来您希望传递包含该值的字符串,因此必须添加引号:
' ... onclick="setProject(\''+this.name+'\');" ...'
因此生成的代码是
onclick="setProject('asasa');"
我没看到你真的给这个工作盒命名。。。这可能是问题所在吗?虽然我在你的代码中没有看到任何关于“asasa”的提及,但这很奇怪。。。
onclick="setProject('asasa');"