Live Notification mit Jquery

Peng... Ja macht Sinn.

mit dem jetzigen Code klappts eigentlich fast so, wie es soll.

Nach dem laden der Seit wird das Badge mittels bounceIn mit der aktuellen Anzahl eingeblendet.

Javascript:
oldValue = null;         
function repeatMe(){
    $.ajax({
    type:'POST',
    url:'test.php',
    data:'json',
    cache:true,
    success:function(data){
    if (oldValue != null) {
    $('.notifications-count').html(data).addClass('animated bounceIn');
        if (oldValue < data) {
        $('.notifications-count').addClass('animated wobble');
        }       
    }       
    oldValue = data;
    }
  });
}
setInterval(repeatMe, 1000)

Was ich aber ums verrecken nicht hinbekomme ist, dass, bei einem neuen Wert das Badge "wobbelt". Die Zahl verändert sich einfach, ohne das sonst etwas passiert.
 
Der wobble Effekt stammt von animate.css und das nutze ich. Wenn ich statt bounceIn wobble einsetze klappt das beim neuladen der Seite ohne Probleme!
 
Dann wird anscheinend der IF-Zweig "oldValue < data" nicht beschritten. Bist du sicher, dass die Werte innerhalb dieser Variablen stimmen? Kannst du vielleicht mal einen Breakpoint in der JS-Konsole deines Browsers setzen und die Variableninhalte auslesen? Oder einfacher: Nutze console.log(), um die Werte auszugeben. (Ich würde allerdings das setInterval() weglassen und repeatMe nur einmal aufrufen, sonst nervt die ständige Datenausgabe.)
 
Hey,

das ist mein Konsolenergebnis. Tatsächlich ist oldValue nicht existent...

Uncaught ReferenceError: oldCount is not defined
$.ajax.success

Und noch mal über den Code gelesen... Ich habe oben oldValue stehe und unten hatte ich oldCount, da kann das auch nichts werden.

Nichts desto trotz, die Konsole gibt keinen Fehler mehr aus, die Animation funktioniert trotzdem nicht!
 
oldCount? Wo haben wir "oldCount" stehen? Wir haben doch nur oldValue im obigen Code.

Zeig mal deinen aktuellen Code.
 
Hatte noch vorher rumgebastelt und hatte (warum auch immer mit der Bezeichnung rumgespielt)

Aktueller Code:

Javascript:
oldValue = null;         
function repeatMe(){
    $.ajax({
    type:'POST',
    url:'test.php',
    data:'json',
    cache:true,
    success:function(data){
    if (oldValue != null) {
    $('.notifications-count').html(data).addClass('animated bounceIn');
        if (data > oldValue) {
        $('.notifications-count').addClass('animated wobble');
        }       
    }       
    oldValue = data;
    }
  });
}
setInterval(repeatMe, 1000)

Also wie ich oben schon ergänzt hatte, als ich es gemerkt habe. Nichts desto trotz, die Konsole gibt keinen Fehler mehr aus, die Animation funktioniert trotzdem nicht!
 
Ok, über welche Animation redest du? Du meinst schon die wobble-Animatino, oder?
Dann musst du überprüfen, ob die IF-Bedingung eintritt.
Entweder per Debugger + Breakpoint oder per:
Javascript:
// ...
console.log(data, oldValue, data > oldValue);
if (data > oldValue) {
  // Rest des Codes
 
Ja ich meinte die wobble Animation. Ich hab den Fehler aber scheinbar gefunden! Ich denke der Code ist sicher noch zu optimieren, aber es funktioniert!

Ich habe einfach mal zuerst ein removeClass und dann erst addClass wobble eingebaut und siehe da, es klappt!

Javascript:
oldValue = null;       
function repeatMe(){
    $.ajax({
    url:'test.php',
    success:function(data){
    if (oldValue != null) {
    $('.notifications-count').html(data).addClass('animated bounceIn');
        if (data > oldValue) {
        $('.notifications-count').removeClass('animated bounceIn');
        $('.notifications-count').addClass('animated wobble');
        } 
        if (data < oldValue) {
        $('.notifications-count').removeClass('animated bounceIn');
        $('.notifications-count').addClass('animated wobble');
        }
    }     
    oldValue = data;
    }
  });
}
setInterval(repeatMe, 1000)

ABER:

unmittelbar nach dem "wobblen" (weil ja derzeit 1 Sekunde) macht er wieder den bounceIn aus diesem Teil

if (oldValue != null) {
$('.notifications-count').html(data).addClass('animated bounceIn');

Kann ich das irgendwie verhindern?
 
Zurück