<script type="text/javascript"> $(function() { $( "#progressbar" ).progressbar({ value: <? echo $progress; ?> }); }); function send_newsletter(n) { if($("#ajax_send").button( "option", "disabled") == true) { return false; } $("#ajax_send").button( "option", "disabled", true ); $("#ajax_send").button( "option", "label", "Wysy\u0142anie newsletter'a... proszę czekać" ); //Ajax request $.getJSON("<? echo URL::site(Request::instance()->uri); ?>", { ajax_send: "1" }, function(data) { //Uzupelnij dane poszczegolnych adresow e-mail $.each(data.emails, function(key, value) { //alert(value.status); if(value.status == 1) { $("#status-"+key).text("wiadomo\u015bć wysłana"); } if(value.status == 0) { } }); //Zmien wartość progress bara $("#progressbar").progressbar( "option", "value", data.progress); if(data.to_send == 0) { //Wlacz przycisk, jezeli wszystko poszlo OK //$("#ajax_send").button( "option", "disabled", false ); $("#ajax_send").button( "option", "label", "Wszystkie wiadomo\u015bci zostały wysłane." ); } else { setTimeout(function() { send_newsletter(0); }, 10000); } return data.to_send; }); } $("#ajax_send").click(function() { send_newsletter(0); }); </script>
Powyżej znajduje się setTimeout(), który teoretycznie powinien wywołać funkcję ponownie, jednak tak się nie dzieje. Po uruchomieniu funkcji za pomocą kliknięcia w button #ajax_send funkcja wywołuje się tylko jeden raz. W setTimeout() jeżeli dam alert(); pokazuje go...
Dzięki za wszelką pomoc
