elem没有在第二种方法中定义

时间:2017-04-11 13:26:06

标签: jquery

function addQuestionToPool(elem) {    
    var body =  '<div class="row">' +
                    '<div class="col-md-12 text-center">' +
                        '<button class="btn btn-danger" onclick="addQuestionToPoolConfirm(elem)">'+LANG.option.add+'</button>&nbsp;' +
                        '<button class="btn btn-default" onclick="$(\'.modal\').modal(\'hide\');">'+LANG.option.cancel+'</button>' +
                    '</div>' +
                '</div>';

    showPopup("small", LANG.question.are_you_sure, body);
}

function addQuestionToPoolConfirm(elem) {
    alert(elem);
    $.ajax({
        url : URL_API + URL_POLL_QUESTION,
        type : 'post',
        data : {'user_id' : user_id, 'question' : question, 'input_type_id' : question_type, 'choices' : choices},
        dataType : 'json',
        success : function (response) {

            if (response.error) {
                toastr.error(LANG.error.question_add_pool);
            } else {
                $('.modal').modal('hide');
                toastr.success(LANG.info.question_add_pool);
                poll_question_datatable.ajax.reload(null, false);
                $(elem).attr({
                    'onclick'   : '',
                    'disabled'  : true
                }).removeClass('btn-outline');
            }
        }
    });
}

elem是为addQuestionToPool定义的,但未定义为addQuestionToPoolConfirm。为什么?

首先,我调用addQuestionToPool方法并发送此对象。我可以在这个方法中访问对象。但是当我从addQuestionToPool方法发送到这个对象addQuestionToPoolConfirm方法时,它说(这个)没有定义。

这里是html中的elem:

<button class="btn btn-icon-only btn-circle yellow-crusta btn-outline" onclick="addQuestionToPool(this);"><i class="fa fa-star"></i></button>&nbsp;

1 个答案:

答案 0 :(得分:0)

如果您在addQuestionToPool方法中为该按钮指定了id,则可以添加要传入的ID。如下所示:

onclick="addQuestionToPoolConfirm(\'' + elem.id + '\')"

然后它应该全部工作