簡體   English   中英

帶有參數的javascript onclick函數

[英]javascript onclick function with parameter

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

看一下生成的代碼。 它將類似於:

onclick="setProject(asasa);"

這意味着您正在嘗試將變量 asasa傳遞給函數。 這樣的變量不存在。

看起來您想傳遞包含該值的字符串,因此必須添加引號:

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

這樣生成的代碼是

onclick="setProject('asasa');"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM