Ich habe einige Probleme beim Aktualisieren einer Jquery-Fortschrittsbalken. Dieser Fortschrittsbalken ist in dem Dokument nicht während der Seite zu laden, ich hinzufüge es nur, wenn der Benutzer auf eine Schaltfläche klickt, ding etwas wie folgt aus:Update einer JQuery-Fortschrittsbalken zur Laufzeit hinzugefügt
$(this).parent().append('<div class="progressbar"></div>');
$(this).parent().children('div.progressbar').show();
$(this).parent().children('div.progressbar').progressbar({value: 20});
dann ein Timeout verwenden, ich versuche, zu aktualisieren, es
function updateProgressBar() {
$('.progressbar').each(function() {
myNewValue = getNewValue();
$(this).progressbar('value', 50);
});
setTimeout('updateProgressBar()', 5000);
}
setTimeout('updateProgressBar()', 5000);
die Debug-Konsole klagt sagen: „nicht abgefangene: Methoden auf progressbar nicht vor aufrufen können initialiaztion: versucht zu rufen Methode‚Wert‘“ googeln hier fand ich, dass das Problem mit dem inizialization zusammenhängen könnte der Fortschrittsbalken nach das Laden der Seite
Könnte mir jemand helfen?
Vielen Dank im Voraus
- bearbeiten -
dank Bryan, versuche ich Ihre Lösung, aber ich für mich
nun diesen Code Ich habe
funktioniert nichtfunction startProgress() {
$(this).parent().append('<div class="progressbar"></div>');
$(this).siblings('.progressbar').show();
$(this).siblings('.progressbar').progressbar({value: 0});
function updateProgress() {
$('.progressbar').each(function() {
myNewValue = getNewValue($(this).parent().parent().attr('id'));
$(this).progressbar('value', myNewValue);
});
setTimeout('updateProgress', 5000);
}
setTimeout('updateProgress', 5000);
}
Die Konsole ist sayng gibt es keine Update
definiert- bearbeiten -
vielen vielen dank !!!
Jetzt habe ich eine ziemlich endgültige Version, die funktioniert ...
Hier ist meine aktuellen Code
if($(this).siblings('.progressbar').size() == 0) {
$(this).parent().append('<div class="progressbar"/>');
$(this).siblings('.progressbar').progressbar({value: 0});
}
$(this).siblings('.progressbar').show();
function updateProgress() {
$('.progressbar').each(function() {
myParams = 'service=' + $(this).parent().parent().attr('id') + '&content=' + $(this).parent().attr('id')
myUrl = '/datacast/content_progress/?' + myParams;
theValue = $(this).progressbar('value');
$.get(myUrl, {}, function(aReply) {
myData = aReply.split(' ');
myItemId = myData[0];
myValue = parseInt(myData[1]);
try {
$(".item[id = " + myItemId + "]").children(".progressbar").progressbar('value', myValue);
}
catch(myError) {
//alert(myError);
}
})
});
setTimeout(updateProgress, 5000);
}
setTimeout(updateProgress, 5000);
Wie Sie sehen, ich hinzufügen, habe eine Kontrolle, ob bereits ein Fortschrittsbalken als Ich überlasse diesen Code mehrmals gründlich. Der Fortschrittsbalken wird jedes Mal aktualisiert, aber die Konsole beklagt sich mit "TypeError: Methode kann nicht aufgerufen werden 'apply' von undefined", daher musste ich den try-Block mit einem leeren Fangkörper hinzufügen, um den Fehler zu löschen. Die Seite funktioniert, aber es könnte interessant sein, wenn Sie eine Idee haben, warum es diesen Fehler gibt
Was ist das Plugin, das Sie verwenden? – lonesomeday
Ich benutze jquery-1.4.2.js und jquery UI Progressbar 1.7.2 – thrantir
Checkout meine neue Antwort unten. – rossipedia