can fresh eyes on what's happening here, please?
the function supposed be: check new data, if new > fade out > reload > fade in, if it's not new data don't animate. it's fading out , in everytime checks new data, wasn't doing when had have open in dev.
$(function() { function reload(elem, interval) { var $elem = $(elem); var $original = $elem.html(); $.ajax({ cache: false, url: 'track.php', type: 'get', success: function(data) { if ($original == data) { settimeout(function() { $("#air_track").fadeout(); reload(elem, interval) $("#air_track").fadein("slow"); }, interval); return } $elem.html(data); settimeout(function() { reload(elem, interval) }, interval) } }) } reload('#air_track', 5000) }); keep in mind i've been 20+ hours little sleep may obvious.
try use dry principle - don't repeat yourself.
set timeout regardless of data each time, , perform animation inside if:
$(function() { var reload = function(elem, interval) { var $el = $(elem); $.ajax({ cache: false, url: 'track.php', type: 'get', success: function(data) { var html = $.parsehtml(data); var newtext = $(html).text().trim(); var current = $el.find('span').text().trim(); if (current != newtext) { $el.fadeout(function() { $el.html(data).fadein('slow'); }); } settimeout(function() { reload(elem, interval); }, interval) } }); }; reload('#air_track', 5000); });
Comments
Post a Comment