2017-04-11 8 views
0
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では未定義です。どうして ?elemは2番目のメソッドで定義されていません

まず、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; 
+0

'elem'は構築されたHTMLで定義されていないためです。 – BenM

+0

@BenMどうすればその方法でアクセスできますか? – Nevermore

+0

邪魔にならないスクリプトを使用してjQueryを使用できるようになっているのに、なぜインラインスクリプトを使用していますか? – charlietfl

答えて

0

あなたはaddQuestionToPool方法で、ボタンにIDを与える場合は、あなたが渡すことにIDを追加することができますが、このような何か:。

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

それはすべて動作するはずです

関連する問題