$(document).ready(function() { var loadingTimer; $(".dynamic").live("click", function() { setTimeout(function() { $("#beltTop").before("<div id='loadingText'>Loading</div>"); setTimeout(function() { $("#loadingText").fadeIn(200); loadingTimer = setTimeout(loadingFunction, 600); }, 400); var loadingFunction = function() { $("#loadingText").append("."); loadingTimer = setTimeout(loadingFunction, 600); if($("#loadingText").html() == "Loading....") $("#loadingText").html("Loading"); } $.ajax({ url: "blablabla", success: function(data) { clearTimeout(loadingTimer); $("#loadingText").remove(); } }); }, 400); }); });
Jednak po sukcesie ajax`a, timeout się nie zatrzymuje, tylko działa dalej, a jak drugi raz kliknę (po sukcesie) na .dynamic, to mam już 2 timery loadingTimer, trzeci raz kliknę - 3. Dlaczego timeout się nie usuwa? Z góry dzięki za odp.