Rafał G.

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
Kacper Oczkoś

Kacper Oczkoś CIO, Data Scientist,
BI Developer

Temat: Kontekst odpowiedzi Ajax - jak to jest z DOMem

script Calendar.setup wywaływany jest raz. przy ładowaniu strony. wtedy twojego buttona i inputa jeszcze tam nie ma. dopiero ajax go tam umieszcza.Kacper Oczkoś edytował(a) ten post dnia 23.07.08 o godzinie 13:06
Kacper Oczkoś

Kacper Oczkoś CIO, Data Scientist,
BI Developer

Temat: Kontekst odpowiedzi Ajax - jak to jest z DOMem

dlatego dopiero script z ajax'a działa poprawnie (wtedy dopiero jest button i input).

oczywiście tak mi się wydaje. :) nie jestem jakimś "jekspertem" :)

Następna dyskusja:

Jakie Frameworki/biblioteki...




Wyślij zaproszenie do