带参数的javascript onclick函数

时间:2014-02-24 00:04:24

标签: javascript

我有以下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);

1 个答案:

答案 0 :(得分:1)

查看生成的代码。它将类似于:

onclick="setProject(asasa);"

这意味着您正在尝试将变量 asasa传递给该函数。这样的变量不存在。

看起来您想要传递包含该值的字符串,因此您必须添加引号:

' ... onclick="setProject(\''+this.name+'\');" ...'

以便生成的代码

onclick="setProject('asasa');"