Rafał
G.
Programista
aplikacji
internetowych
Temat: Kontekst odpowiedzi Ajax - jak to jest z DOMem
Załóżmy, że w kodzie stronki jest skrypt typu:<script type="text/javascript">
Calendar.setup({
inputField : "base",
ifFormat : "%Y-%m-%d",
button : "baseTrigger"
});
</script>
(z komponentu DHTML Calendar). Skrypt ten ma spowodować, że po naciśnięciu przycisku o id "baseTrigger" pojawi się kalendarz, a po wybraniu daty zostanie ona wpisana do inputa o id "base". Zrobiłem tak, że wspomniany button i input są zwracane przez Ajax. Robię to mniej więcej tak w odpowiedniej funkcji (XAJAX):
$response->assign("extraFields", "innerHTML", '<label for="base">Podstawa: </label>
<button type="button" id="baseTrigger" name="baseTrigger" style="background: none; border: 0;"><img src="'.DIR_WS_IMAGES.'stats/calendar.gif" alt="" /></button>
<input type="text" id="base" name="base" size="15" />');, gdzie "extraFields" to div z takim id.
Input i button pojawiają się na stronie, jednakże po naciśnięciu buttona kalendarz się nie pojawia.
Dopiero gdy wcześniejszy skrytp zwróciłem też za pomocą Ajax:
$response->script("Calendar.setup({
inputField : \"base\",
ifFormat : \"%Y-%m-%d\",
button : \"baseTrigger\"
})");
wszystko zadziałało.
Czy to oznacza, że skrypt js, który pokazałem na początku "nie widział" tego inputa i buttona zwróconego przez Ajax? Dlaczego tak jest?Rafał Grzegorek edytował(a) ten post dnia 23.07.08 o godzinie 12:07