2016-07-12 6 views
0

Ich habe eine EJS-Seite, die AJAX verwendet, um einige Daten abzurufen. Nach dem Laden der Daten möchte ich einen bestimmten Inhalt an ein div anhängen. In dem beigefügten Inhalt gibt es Kontrollkästchen, die die folgende Skript verwendet:EJS Script kann nicht innerhalb von AJAX 'Erfolg' ausgeführt werden

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

Hier ist meine Ajax:

$.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); 
}) 

Wenn ich zum ersten Mal auf die Seite zugreifen, die alle auswählen Funktion arbeitet. Wenn die Daten jedoch mit AJAX wie im obigen Code geändert werden, funktioniert die Funktion "Alle auswählen" nicht mehr. Ich dachte mir, dass mein Skript nicht in der 'Erfolg' Callback von AJAX ausgeführt werden kann, da alle meine Funktionen, die Skript verwenden, nach dem Ändern/Anfügen mit AJAX fehlschlagen.

Gibt es eine Möglichkeit, Skripte in meinem AJAX 'Erfolg' Callback auszuführen? Schätzen Sie Feedback/Ratschläge!

Antwort

0

Ich fand eine Lösung, die tatsächlich funktioniert, hoffe, es hilft jemandem mit dem gleichen Problem.

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

Grundsätzlich in diesem Format statt .change Methode, um die .on Methode ermöglicht es der Inhalt von AJAX dieses Skript zugreifen.

habe die Idee von hier: https://forum.jquery.com/topic/use-on-click-do-not-work-after-ajax-call

Verwandte Themen