2016-07-26 16 views
-2

Ich kann nicht herausfinden, warum in der Ajax-Erfolg Callback '.html()' nicht funktioniert. Es ist beabsichtigt, den Inhalt zu ersetzen. Die Klassen werden mit dem Element hinzugefügt, aber der Inhalt davon sind leer:jQuery .html funktioniert nicht auf der Tabellenzelle

<td class="book-class centre cancelled"></td> 

ich alle anderen Skripte von der Seite entfernt haben nichts, um sicherzustellen, kollidierende, ich habe versucht, die .removeClass Entfernen() und .addClass(), aber es funktioniert immer noch nicht. Nachdem ich zwei Stunden damit verbracht habe, es zu betrachten, bin ich mir sicher, dass dies etwas einfaches sein wird, aber jegliche Hilfe würde sehr geschätzt werden.

$(document).ready(function() { 

    // Cancel Class 
    $(document).on('click', '.cancel-class', function(e) { 

     e.preventDefault(); 

     var cell = this; 
     var row = $(this).parent(); 
     var id = $(row).data('booking-id'); 

     $(this).html('<img src="assets/images/spinner.gif" class="spinner" data-booking-id="'+id+'">'); 

     $.ajax({ 
     type: "POST", 
     url: "controllers/cancelClass.ctrl.php", 
     dataType: 'json', 
     cache: false, 
     data: {"id": id}, 

     success: function() { 

      // NOT WORKING 
      $(cell).removeClass().addClass('book-class centre cancelled').html('<i class="fa fa-times-circle></i> Cancelled'); 
     }, 

     error: function(data) { 
      console.log(data); 
     } 
     }); 

    }); 

}); 

Antwort

3

Vielleicht ist es nur ein Tippfehler in der Frage, aber wenn nicht, wäre dies sicherlich ein Problem. In der folgenden Zeile:

$(cell).removeClass().addClass('book-class centre cancelled').html('<i class="fa fa-times-circle></i> Cancelled'); 

Sie haben ein abschließendes Doppelzitat vergessen. Es sollte dies sein:

$(cell).removeClass().addClass('book-class centre cancelled').html('<i class="fa fa-times-circle"></i> Cancelled'); 
+0

Ja das war es danke. Das ist ziemlich peinlich ... – MKC