2016-07-12 5 views
0

AJAXを使用していくつかのデータを取得するEJSページがあります。データを読み込んだ後、divに特定のコンテンツを追加します。追加コンテンツでは、次のスクリプトを使用するチェックボックスがあります。私は最初のページにアクセスするとEJSスクリプトがajax 'success'コールで実行できない

$.ajax({ 
type: 'POST', 
data: JSON.stringify(data), 
contentType: 'application/json', 
url: 'http://localhost:3000/mytableajax', 
success: function(result) { 
    //result is printed, everything is retrieved correctly 
    $('#mytable').empty(); 
    var eventresult = JSON.parse(result); 
    var node = document.getElementById('mytable'); 

    toAppend += '<input type="checkbox" id="selectall" class="c-check">'; //This checkbox will allow me to select all other checkboxes 

    //I have other checkboxes appended at the bottom with the class "checkbox" 


    node.innerHTML = toAppend; 
    document.getElementById('mytable').appendChild(node); 
}) 

は、選択は、すべての機能が動作します。

<script> 
$('#selectall').change(function() { 
    $('.checkbox').prop('checked', this.checked).trigger('change'); 
}); 
</script> 

はここに私のアヤックスです。ただし、上記のコードのようにAJAXを使用してデータを変更している場合は、select all関数が機能しなくなります。 AJAXを使用してスクリプトを変更/追加した後、スクリプトを使用するすべての関数が失敗するように見えるため、スクリプトがAJAXの '成功'コールバック内で実行できないように思えました。

AJAXの「成功」コールバック内でスクリプトを実行する方法はありますか?フィードバック/アドバイスを感謝してください!

答えて

0

実際に動作する解決策が見つかりました。同じ問題を抱えている人に役立つことを願っています。

$(document).on('change', '#selectall' , function() { 
    $(".checkbox").attr('checked', $(this).is(":checked")).trigger('change'); 
}); 

基本的に、代わり.change方法のこの形式において.onの方法を使用してAJAXのコンテンツは、このスクリプトにアクセスすることを可能にします。

ここからアイデアを得ました: https://forum.jquery.com/topic/use-on-click-do-not-work-after-ajax-call

関連する問題