Ich benutze Jquery laden und dann, sobald der Inhalt in das Div geladen wird, ich möchte einige der Tags zu sprachabhängigen Variablen ändern.Jquery laden und dann geladenen Inhalt bearbeiten
Mein Problem ist, dass ich ein settimeout verwenden muss, um das Skript lange genug warten zu lassen, damit die Elemente zum Bearbeiten bereit sind.
Wenn ich den Callback-Funktionsparameter verwende, sind die Elemente, die ich bearbeiten möchte, anscheinend nicht bereit, weil sie nicht gesetzt werden. Ich hasse es, settimeout zu verwenden, weil dies jeden auf die langsamste Einstellung beschränkt und einige Verbindungen sind immer noch langsamer.
Scheinbar bedeutet die Callback-Methode nur, dass die Ajax-Methode den HTML-Code zurückbekommt, aber es stellt nicht sicher, dass die importierten Elemente tatsächlich in dom bereit sind.
Wer hat Ideen?
aktuellen Code
$("#content-basket").load("/BasketPage.htm?time=" + now.getMilliseconds());
...
...
setTimeout("timedbasket();", 500);
...
...
function timedbasket() {
alert($('#basketlegend'));
$('#basketlegend').html(basketlabel);
}
Ich mag wäre in der Lage sein
$("#content-basket").load("/BasketPage.htm?time=" + now.getMilliseconds(), "", timedbasket());
Hier zu verwenden ist die basket.htm Quelle
<tr>
<td>
<div id="basket">
<fieldset>
<legend><span id="basketlegend"></span></legend>
<table id="baskettbl" border="0" class="basket-table">
<tbody>
<tr class='total'>
<td>
<span id="empty"></span>
</td>
</tr>
</tbody>
</table>
</fieldset>
</div>
</td>
</tr>
'$ (" # content-basket "). Load (...," ", timedbasket())' sollte '$ sein (" # content-basket "). Load (...," ", timedbasket) ', so dass Sie die timedbasket-Funktion übergeben, anstatt timedbasket aufzurufen und seinen Rückgabewert zu übergeben. –
Das war die Antwort, also denke ich, dass du keine Parameter in der Callback-Deklaration übergeben kannst und du nur den Funktionsnamen eingibst. Danke! Danke an alle, die geantwortet haben, aber Patrick hat diese bekommen. – MvcCmsJon