🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.javascript
15 messages
15 total messages Started by Peter May Tue, 14 Sep 2010 11:16
Czy zdarzenie ma podpiętą funkcję - jak sprawdzić
#50269
Author: Peter May
Date: Tue, 14 Sep 2010 11:16
19 lines
1529 bytes
Jakoś nigdy tego nie potrzebowałem :/ Niemniej jednak w jaki sposób mogę 
sprawdzić czy pod dane zdarzenie w danym elemencie jest już podpięta 
dana funkcja? Coś nie mogę znaleźć metody albo nie ma takiej możliwości 
bezpośredniej.

Chodzi mi o coś takiego (upraszczam do maksimum przykład):

var el = document.getElementById("test");
if(pod zdarzenie onclick w elemencie el jest podpieta funkcja "przyklad")
{
  return false;
}

Mogę co prawda obejść ustawiając sobie atrybut jakiś wcześniej, a w nim 
informację, że obiekt ma już podpiętą funkcję "przyklad" pod zdarzenie, 
ale to chyba nie najlepszy pomysł.

-- 
Peter
Re: Czy zdarzenie ma podpiętą funkcję - jak sprawdzić
#50270
Author: zpk
Date: Wed, 15 Sep 2010 19:23
30 lines
2190 bytes
On 14 Wrz, 13:16, Peter May <peter....@onet.pl> wrote:
> Jakoś nigdy tego nie potrzebowałem :/ Niemniej jednak w jaki sposób mogę
> sprawdzić czy pod dane zdarzenie w danym elemencie jest już podpięta
> dana funkcja? Coś nie mogę znaleźć metody albo nie ma takiej możliwości
> bezpośredniej.
>
> Chodzi mi o coś takiego (upraszczam do maksimum przykład):
>
> var el = document.getElementById("test");
> if(pod zdarzenie onclick w elemencie el jest podpieta funkcja "przyklad")
> {
>   return false;
>
> }
>
> Mogę co prawda obejść ustawiając sobie atrybut jakiś wcześniej, a w nim
> informację, że obiekt ma już podpiętą funkcję "przyklad" pod zdarzenie,
> ale to chyba nie najlepszy pomysł.
>
> --
> Peter

A nie można po prostu:

if (document.getElementById('x').getAttribute('onclick')) {jest} else
{nie ma}

(nie sprawdzałem)

Paweł
Re: Czy zdarzenie ma podpiętą funkcję - jak sprawdzić
#50274
Author: Peter May
Date: Wed, 15 Sep 2010 20:09
35 lines
2122 bytes
W dniu 2010-09-15 21:23, zpk pisze:
> On 14 Wrz, 13:16, Peter May<peter....@onet.pl>  wrote:
>> Jakoś nigdy tego nie potrzebowałem :/ Niemniej jednak w jaki sposób mogę
>> sprawdzić czy pod dane zdarzenie w danym elemencie jest już podpięta
>> dana funkcja? Coś nie mogę znaleźć metody albo nie ma takiej możliwości
>> bezpośredniej.
>>
>> Chodzi mi o coś takiego (upraszczam do maksimum przykład):
>>
>> var el = document.getElementById("test");
>> if(pod zdarzenie onclick w elemencie el jest podpieta funkcja "przyklad")
>> {
>>    return false;
>>
>> }
>>
>> Mogę co prawda obejść ustawiając sobie atrybut jakiś wcześniej, a w nim
>> informację, że obiekt ma już podpiętą funkcję "przyklad" pod zdarzenie,
>> ale to chyba nie najlepszy pomysł.
>>
>> --
>> Peter
>
> A nie można po prostu:
>
> if (document.getElementById('x').getAttribute('onclick')) {jest} else
> {nie ma}
>
> (nie sprawdzałem)

Tu nie chodzi o sprawdzenie czy istnieje atrybut onclick, tylko jakie 
funkcje są pod niego "podpięte".

-- 
Peter
Re: Czy zdarzenie ma podpiętą funkcję - jak sprawdzić
#50272
Author: zpk
Date: Fri, 17 Sep 2010 12:18
49 lines
2814 bytes
On 15 Wrz, 22:09, Peter May <peter....@onet.pl> wrote:
> W dniu 2010-09-15 21:23, zpk pisze:
>
>
>
>
>
> > On 14 Wrz, 13:16, Peter May<peter....@onet.pl>  wrote:
> >> Jakoś nigdy tego nie potrzebowałem :/ Niemniej jednak w jaki sposób mogę
> >> sprawdzić czy pod dane zdarzenie w danym elemencie jest już podpięta
> >> dana funkcja? Coś nie mogę znaleźć metody albo nie ma takiej możliwości
> >> bezpośredniej.
>
> >> Chodzi mi o coś takiego (upraszczam do maksimum przykład):
>
> >> var el = document.getElementById("test");
> >> if(pod zdarzenie onclick w elemencie el jest podpieta funkcja "przyklad")
> >> {
> >>    return false;
>
> >> }
>
> >> Mogę co prawda obejść ustawiając sobie atrybut jakiś wcześniej, a w nim
> >> informację, że obiekt ma już podpiętą funkcję "przyklad" pod zdarzenie,
> >> ale to chyba nie najlepszy pomysł.
>
> >> --
> >> Peter
>
> > A nie można po prostu:
>
> > if (document.getElementById('x').getAttribute('onclick')) {jest} else
> > {nie ma}
>
> > (nie sprawdzałem)
>
> Tu nie chodzi o sprawdzenie czy istnieje atrybut onclick, tylko jakie
> funkcje są pod niego "podpięte".
>
> --
> Peter- Ukryj cytowany tekst -
>
> - Pokaż cytowany tekst -

to co napisałem, nie sprawdza, czy jest onclick tylko "czy jest
onclick z czymś podpiętym" <- true, lub "nie ma tego atrybutu lub jest
pusty"<-false

Paweł
Re: Czy zdarzenie ma podpiętą funkcję - jak sprawdzić
#50275
Author: Peter May
Date: Fri, 17 Sep 2010 12:54
22 lines
1764 bytes
W dniu 2010-09-17 14:18, zpk pisze:
> On 15 Wrz, 22:09, Peter May<peter....@onet.pl>  wrote:
>> W dniu 2010-09-15 21:23, zpk pisze:
>>> A nie można po prostu:
>>
>>> if (document.getElementById('x').getAttribute('onclick')) {jest} else
>>> {nie ma}
>>
>>> (nie sprawdzałem)
>>
>> Tu nie chodzi o sprawdzenie czy istnieje atrybut onclick, tylko jakie
>> funkcje są pod niego "podpięte".

> to co napisałem, nie sprawdza, czy jest onclick tylko "czy jest
> onclick z czymś podpiętym"<- true, lub "nie ma tego atrybutu lub jest
> pusty"<-false

Nie sądzę. getAttribute zwraca wartość atrybutu o podanej nazwie. I nic 
więcej.

-- 
Peter
Re: Czy zdarzenie ma podpiętą funkcję - jak sprawdzić
#50280
Author: emil
Date: Fri, 17 Sep 2010 19:21
26 lines
2026 bytes
On 09/14/2010 01:16 PM, Peter May wrote:
> Jakoś nigdy tego nie potrzebowałem :/ Niemniej jednak w jaki sposób mogę
> sprawdzić czy pod dane zdarzenie w danym elemencie jest już podpięta
> dana funkcja? Coś nie mogę znaleźć metody albo nie ma takiej możliwości
> bezpośredniej.
>
> Chodzi mi o coś takiego (upraszczam do maksimum przykład):
>
> var el = document.getElementById("test");
> if(pod zdarzenie onclick w elemencie el jest podpieta funkcja "przyklad")
> {
> return false;
> }
>
> Mogę co prawda obejść ustawiając sobie atrybut jakiś wcześniej, a w nim
> informację, że obiekt ma już podpiętą funkcję "przyklad" pod zdarzenie,
> ale to chyba nie najlepszy pomysł.
>
Standard DOM nie uwzględnia tego i ogólnie rzecz biorąc się nie da. 
Zazwyczaj nie podpina się handlerów bezpośrednio za pomocą 
addEventListener, tylko używa się pośredniej funkcji, która zapisuje do 
mapy albo tablicy wszystkie handlery podpięte do danego elementu.
Popatrz np. w kod jQuery. Poszukaj również w archiwum ajaxian.com, było 
parę niezłych postów na ten temat.

emil
Re: Czy zdarzenie ma podpiętą funkcję - jak sprawdzić
#50281
Author: Peter May
Date: Fri, 17 Sep 2010 20:45
56 lines
3239 bytes
W dniu 2010-09-17 21:21, emil pisze:
> On 09/14/2010 01:16 PM, Peter May wrote:
>> Jakoś nigdy tego nie potrzebowałem :/ Niemniej jednak w jaki sposób mogę
>> sprawdzić czy pod dane zdarzenie w danym elemencie jest już podpięta
>> dana funkcja? Coś nie mogę znaleźć metody albo nie ma takiej możliwości
>> bezpośredniej.
>>
>> Chodzi mi o coś takiego (upraszczam do maksimum przykład):
>>
>> var el = document.getElementById("test");
>> if(pod zdarzenie onclick w elemencie el jest podpieta funkcja "przyklad")
>> {
>> return false;
>> }
>>
>> Mogę co prawda obejść ustawiając sobie atrybut jakiś wcześniej, a w nim
>> informację, że obiekt ma już podpiętą funkcję "przyklad" pod zdarzenie,
>> ale to chyba nie najlepszy pomysł.
>>
> Standard DOM nie uwzględnia tego i ogólnie rzecz biorąc się nie da.

No w specyfikacji DOM 1,2,3 nie widziałem właśnie tego. No ale zawsze 
mogą istnieć nieudokumentowane tricki ;-)

> Zazwyczaj nie podpina się handlerów bezpośrednio za pomocą
> addEventListener, tylko używa się pośredniej funkcji, która zapisuje do
> mapy albo tablicy wszystkie handlery podpięte do danego elementu.

Raczej korzystam z pośredniej funkcji. Ot, choćby z powodów, które 
opisane są tutaj:
https://developer.mozilla.org/pl/DOM/element.addEventListener

"
Po co używać addEventListener?

addEventListener daje możliwość zarejestrowania obsługi zdarzenia według 
specyfikacji W3C DOM. Korzyści są następujące:

* Pozwala na dodanie więcej niż jednego obiektu obsługującego zdarzenie. 
Jest to szczególnie użyteczne przy bibliotekach DHTML czy rozszerzeniach 
Mozilli, które pracują, gdy uruchomione są inne biblioteki i rozszerzenia,
* Daje większą kontrolę nad etapem aktywacji obiektu nasłuchującego 
listener (przechwytywanie vs. propagowanie),
* Działa dla każdego elementu z DOM, a nie tylko dla elementów HTML.
"

Inna sprawa to attachEvent w IE. Ale to już inna bajka.

> Popatrz np. w kod jQuery. Poszukaj również w archiwum ajaxian.com, było
> parę niezłych postów na ten temat.

Owszem, ale na temat, który mnie interesuje, nic nie ma :/ Widocznie 
jeszcze tego specyfikacja DOM nie dorobiła się :-(

-- 
Peter
Re: Czy zdarzenie ma podpiętą funkcję - jak sprawdzić
#50282
Author: Paweł Piskorz
Date: Sat, 18 Sep 2010 17:42
12 lines
1286 bytes
On 2010-09-14 13:16, Peter May wrote:
> Jakoś nigdy tego nie potrzebowałem :/ Niemniej jednak w jaki sposób mogę
> sprawdzić czy pod dane zdarzenie w danym elemencie jest już podpięta
> dana funkcja?

Hmm, tak z ciekawości: po co Ci to? :)


-- 
message[autor="PablO"]::after {
	content:"Pozdrawiam";
}
Re: Czy zdarzenie ma podpiętą funkcję - jak sprawdzić
#50283
Author: Peter May
Date: Sat, 18 Sep 2010 19:56
20 lines
1797 bytes
W dniu 2010-09-18 19:42, Paweł Piskorz pisze:
> On 2010-09-14 13:16, Peter May wrote:
>> Jakoś nigdy tego nie potrzebowałem :/ Niemniej jednak w jaki sposób mogę
>> sprawdzić czy pod dane zdarzenie w danym elemencie jest już podpięta
>> dana funkcja?
>
> Hmm, tak z ciekawości: po co Ci to? :)

A no po to, by n razy tej samej funkcji nie podpinać do obiektu. Ale 
chyba wiem w czym miałem problem.

Kiedy ładowałem zawartość z serwera XHR-em, to potem wywoływałem różne 
funkcje po całym drzewie DOM. I w jednym akurat miejscu do jednego 
obiektu do zdarzenia onclick podpinałem funkcję anonimową. A co za tym 
idzie nie mogła się ona napisać, ale dodawała się jako kolejna. I w tym 
problem właśnie, choć jeszcze tego nie przetestowałem. Choć trop pewnie 
dobry.

-- 
Peter
Re: Czy zdarzenie ma podpiętą funkcję - jak sprawdzić
#50273
Author: zpk
Date: Sun, 19 Sep 2010 08:31
27 lines
2349 bytes
On 17 Wrz, 14:54, Peter May <peter....@onet.pl> wrote:
> W dniu 2010-09-17 14:18, zpk pisze:
>
> > On 15 Wrz, 22:09, Peter May<peter....@onet.pl>  wrote:
> >> W dniu 2010-09-15 21:23, zpk pisze:
> >>> A nie można po prostu:
>
> >>> if (document.getElementById('x').getAttribute('onclick')) {jest} else
> >>> {nie ma}
>
> >>> (nie sprawdzałem)
>
> >> Tu nie chodzi o sprawdzenie czy istnieje atrybut onclick, tylko jakie
> >> funkcje są pod niego "podpięte".
> > to co napisałem, nie sprawdza, czy jest onclick tylko "czy jest
> > onclick z czymś podpiętym"<- true, lub "nie ma tego atrybutu lub jest
> > pusty"<-false
>
> Nie sądzę. getAttribute zwraca wartość atrybutu o podanej nazwie. I nic
> więcej.
>
> --
> Peter

if ('') zwraca false, więc jest tak jak napisałem.

Paweł
Re: Czy zdarzenie ma podpiętą funkcję - jak sprawdzić
#50271
Author: Peter May
Date: Sun, 19 Sep 2010 12:27
33 lines
2273 bytes
W dniu 2010-09-19 10:31, zpk pisze:
> On 17 Wrz, 14:54, Peter May<peter....@onet.pl>  wrote:
>> W dniu 2010-09-17 14:18, zpk pisze:
>>
>>> On 15 Wrz, 22:09, Peter May<peter....@onet.pl>    wrote:
>>>> W dniu 2010-09-15 21:23, zpk pisze:
>>>>> A nie można po prostu:
>>
>>>>> if (document.getElementById('x').getAttribute('onclick')) {jest} else
>>>>> {nie ma}
>>
>>>>> (nie sprawdzałem)
>>
>>>> Tu nie chodzi o sprawdzenie czy istnieje atrybut onclick, tylko jakie
>>>> funkcje są pod niego "podpięte".
>>> to co napisałem, nie sprawdza, czy jest onclick tylko "czy jest
>>> onclick z czymś podpiętym"<- true, lub "nie ma tego atrybutu lub jest
>>> pusty"<-false
>>
>> Nie sądzę. getAttribute zwraca wartość atrybutu o podanej nazwie. I nic
>> więcej.
>>
>> --
>> Peter
>
> if ('') zwraca false, więc jest tak jak napisałem.

Nie jest. getAttribute to funkcja, która mi nie zwraca jakie zdarzenia 
są podpięte pod atrybut, tylko jaką wartość ma atrybut. A to zasadnicza 
różnica.

-- 
Peter
Re: Czy zdarzenie ma podpiętą funkcję - jak sprawdzić
#50277
Author: zpk
Date: Mon, 20 Sep 2010 17:57
51 lines
3224 bytes
On 19 Wrz, 14:27, Peter May <peter....@onet.pl> wrote:
> W dniu 2010-09-19 10:31, zpk pisze:
>
>
>
>
>
> > On 17 Wrz, 14:54, Peter May<peter....@onet.pl>  wrote:
> >> W dniu 2010-09-17 14:18, zpk pisze:
>
> >>> On 15 Wrz, 22:09, Peter May<peter....@onet.pl>    wrote:
> >>>> W dniu 2010-09-15 21:23, zpk pisze:
> >>>>> A nie można po prostu:
>
> >>>>> if (document.getElementById('x').getAttribute('onclick')) {jest} else
> >>>>> {nie ma}
>
> >>>>> (nie sprawdzałem)
>
> >>>> Tu nie chodzi o sprawdzenie czy istnieje atrybut onclick, tylko jakie
> >>>> funkcje są pod niego "podpięte".
> >>> to co napisałem, nie sprawdza, czy jest onclick tylko "czy jest
> >>> onclick z czymś podpiętym"<- true, lub "nie ma tego atrybutu lub jest
> >>> pusty"<-false
>
> >> Nie sądzę. getAttribute zwraca wartość atrybutu o podanej nazwie. I nic
> >> więcej.
>
> >> --
> >> Peter
>
> > if ('') zwraca false, więc jest tak jak napisałem.
>
> Nie jest. getAttribute to funkcja, która mi nie zwraca jakie zdarzenia
> są podpięte pod atrybut, tylko jaką wartość ma atrybut. A to zasadnicza
> różnica.
>

bym polemizował. Jeżeli atrybut ma jakąś wartość to znaczy, że coś
jest pod niego podpięte - i na odwrót.
Chociaż zdarzenia można podpidać przeróżnie. Ja np nie stosuję onclick
elementu, tylko w pętli globalnej dla body sprawdzam, co kliknięto.
Dzięki temu nie muszę kombinować ze zdarzeniami przy Ajaksie -
działają od razu bez żadnego eval (np);

Paweł

> --
> Peter- Ukryj cytowany tekst -
>
> - Pokaż cytowany tekst -
Re: Czy zdarzenie ma podpiętą funkcję - jak sprawdzić
#50276
Author: Peter May
Date: Mon, 20 Sep 2010 20:05
57 lines
3108 bytes
W dniu 2010-09-20 19:57, zpk pisze:
> On 19 Wrz, 14:27, Peter May<peter....@onet.pl>  wrote:
>> W dniu 2010-09-19 10:31, zpk pisze:
>>
>>
>>
>>
>>
>>> On 17 Wrz, 14:54, Peter May<peter....@onet.pl>    wrote:
>>>> W dniu 2010-09-17 14:18, zpk pisze:
>>
>>>>> On 15 Wrz, 22:09, Peter May<peter....@onet.pl>      wrote:
>>>>>> W dniu 2010-09-15 21:23, zpk pisze:
>>>>>>> A nie można po prostu:
>>
>>>>>>> if (document.getElementById('x').getAttribute('onclick')) {jest} else
>>>>>>> {nie ma}
>>
>>>>>>> (nie sprawdzałem)
>>
>>>>>> Tu nie chodzi o sprawdzenie czy istnieje atrybut onclick, tylko jakie
>>>>>> funkcje są pod niego "podpięte".
>>>>> to co napisałem, nie sprawdza, czy jest onclick tylko "czy jest
>>>>> onclick z czymś podpiętym"<- true, lub "nie ma tego atrybutu lub jest
>>>>> pusty"<-false
>>
>>>> Nie sądzę. getAttribute zwraca wartość atrybutu o podanej nazwie. I nic
>>>> więcej.
>>
>>>> --
>>>> Peter
>>
>>> if ('') zwraca false, więc jest tak jak napisałem.
>>
>> Nie jest. getAttribute to funkcja, która mi nie zwraca jakie zdarzenia
>> są podpięte pod atrybut, tylko jaką wartość ma atrybut. A to zasadnicza
>> różnica.
>>
>
> bym polemizował. Jeżeli atrybut ma jakąś wartość to znaczy, że coś
> jest pod niego podpięte - i na odwrót.

Ale tu nie ma co polemizować:
https://developer.mozilla.org/pl/DOM/element.getAttribute

> Chociaż zdarzenia można podpidać przeróżnie. Ja np nie stosuję onclick
> elementu, tylko w pętli globalnej dla body sprawdzam, co kliknięto.

Można i tak. Chociaż nie wiem na ile to jest praktyczne.

> Dzięki temu nie muszę kombinować ze zdarzeniami przy Ajaksie -
> działają od razu bez żadnego eval (np);

A tu akurat nie widzę związku.

-- 
Peter
Re: Czy zdarzenie ma podpiętą funkcję - jak sprawdzić
#50278
Author: zpk
Date: Mon, 20 Sep 2010 20:59
74 lines
4317 bytes
On 20 Wrz, 22:05, Peter May <peter....@onet.pl> wrote:
> W dniu 2010-09-20 19:57, zpk pisze:
>
>
>
>
>
> > On 19 Wrz, 14:27, Peter May<peter....@onet.pl>  wrote:
> >> W dniu 2010-09-19 10:31, zpk pisze:
>
> >>> On 17 Wrz, 14:54, Peter May<peter....@onet.pl>    wrote:
> >>>> W dniu 2010-09-17 14:18, zpk pisze:
>
> >>>>> On 15 Wrz, 22:09, Peter May<peter....@onet.pl>      wrote:
> >>>>>> W dniu 2010-09-15 21:23, zpk pisze:
> >>>>>>> A nie można po prostu:
>
> >>>>>>> if (document.getElementById('x').getAttribute('onclick')) {jest} else
> >>>>>>> {nie ma}
>
> >>>>>>> (nie sprawdzałem)
>
> >>>>>> Tu nie chodzi o sprawdzenie czy istnieje atrybut onclick, tylko jakie
> >>>>>> funkcje są pod niego "podpięte".
> >>>>> to co napisałem, nie sprawdza, czy jest onclick tylko "czy jest
> >>>>> onclick z czymś podpiętym"<- true, lub "nie ma tego atrybutu lub jest
> >>>>> pusty"<-false
>
> >>>> Nie sądzę. getAttribute zwraca wartość atrybutu o podanej nazwie. I nic
> >>>> więcej.
>
> >>>> --
> >>>> Peter
>
> >>> if ('') zwraca false, więc jest tak jak napisałem.
>
> >> Nie jest. getAttribute to funkcja, która mi nie zwraca jakie zdarzenia
> >> są podpięte pod atrybut, tylko jaką wartość ma atrybut. A to zasadnicza
> >> różnica.
>
> > bym polemizował. Jeżeli atrybut ma jakąś wartość to znaczy, że coś
> > jest pod niego podpięte - i na odwrót.
>
> Ale tu nie ma co polemizować:https://developer.mozilla.org/pl/DOM/element.getAttribute
>
> > Chociaż zdarzenia można podpidać przeróżnie. Ja np nie stosuję onclick
> > elementu, tylko w pętli globalnej dla body sprawdzam, co kliknięto.
>
> Można i tak. Chociaż nie wiem na ile to jest praktyczne.
>

Traktuję to jako analogię do działania aplikacji Windows której
działanie sprowadza się do obsługi pętli komunikatów z systemu. Jak
dla mnie to jest właściwa droga.

> > Dzięki temu nie muszę kombinować ze zdarzeniami przy Ajaksie -
> > działają od razu bez żadnego eval (np);
>
> A tu akurat nie widzę związku.
>

Jeżeli wczytasz fragment htmla Ajaksem i będzie w nim kod JS to nie
zadziała. Musisz go uaktywnić, przez np. eval. (Chyba, że czegoś nie
wiem).
U mnie pętla bierze pod uwagę również elementy których jeszcze nie ma
na stronie ale mogą (nie muszą) pojawić się później. Dlatego nie mam
tego problemu z nowymi skryptami.

Paweł

> --
> Peter- Ukryj cytowany tekst -
>
> - Pokaż cytowany tekst -
Re: Czy zdarzenie ma podpiętą funkcję - jak sprawdzić
#50279
Author: Peter May
Date: Mon, 20 Sep 2010 21:29
78 lines
4103 bytes
W dniu 2010-09-20 22:59, zpk pisze:
> On 20 Wrz, 22:05, Peter May<peter....@onet.pl>  wrote:
>> W dniu 2010-09-20 19:57, zpk pisze:
>>
>>
>>
>>
>>
>>> On 19 Wrz, 14:27, Peter May<peter....@onet.pl>    wrote:
>>>> W dniu 2010-09-19 10:31, zpk pisze:
>>
>>>>> On 17 Wrz, 14:54, Peter May<peter....@onet.pl>      wrote:
>>>>>> W dniu 2010-09-17 14:18, zpk pisze:
>>
>>>>>>> On 15 Wrz, 22:09, Peter May<peter....@onet.pl>        wrote:
>>>>>>>> W dniu 2010-09-15 21:23, zpk pisze:
>>>>>>>>> A nie można po prostu:
>>
>>>>>>>>> if (document.getElementById('x').getAttribute('onclick')) {jest} else
>>>>>>>>> {nie ma}
>>
>>>>>>>>> (nie sprawdzałem)
>>
>>>>>>>> Tu nie chodzi o sprawdzenie czy istnieje atrybut onclick, tylko jakie
>>>>>>>> funkcje są pod niego "podpięte".
>>>>>>> to co napisałem, nie sprawdza, czy jest onclick tylko "czy jest
>>>>>>> onclick z czymś podpiętym"<- true, lub "nie ma tego atrybutu lub jest
>>>>>>> pusty"<-false
>>
>>>>>> Nie sądzę. getAttribute zwraca wartość atrybutu o podanej nazwie. I nic
>>>>>> więcej.
>>
>>>>>> --
>>>>>> Peter
>>
>>>>> if ('') zwraca false, więc jest tak jak napisałem.
>>
>>>> Nie jest. getAttribute to funkcja, która mi nie zwraca jakie zdarzenia
>>>> są podpięte pod atrybut, tylko jaką wartość ma atrybut. A to zasadnicza
>>>> różnica.
>>
>>> bym polemizował. Jeżeli atrybut ma jakąś wartość to znaczy, że coś
>>> jest pod niego podpięte - i na odwrót.
>>
>> Ale tu nie ma co polemizować:https://developer.mozilla.org/pl/DOM/element.getAttribute
>>
>>> Chociaż zdarzenia można podpidać przeróżnie. Ja np nie stosuję onclick
>>> elementu, tylko w pętli globalnej dla body sprawdzam, co kliknięto.
>>
>> Można i tak. Chociaż nie wiem na ile to jest praktyczne.
>>
>
> Traktuję to jako analogię do działania aplikacji Windows której
> działanie sprowadza się do obsługi pętli komunikatów z systemu. Jak
> dla mnie to jest właściwa droga.

No cóż. Każda droga jest dobra, która prowadzi do celu.

>>> Dzięki temu nie muszę kombinować ze zdarzeniami przy Ajaksie -
>>> działają od razu bez żadnego eval (np);
>>
>> A tu akurat nie widzę związku.
>>
>
> Jeżeli wczytasz fragment htmla Ajaksem i będzie w nim kod JS to nie
> zadziała. Musisz go uaktywnić, przez np. eval. (Chyba, że czegoś nie
> wiem).

Owszem, eval tutaj jest na miejscu.

> U mnie pętla bierze pod uwagę również elementy których jeszcze nie ma
> na stronie ale mogą (nie muszą) pojawić się później. Dlatego nie mam
> tego problemu z nowymi skryptami.

Ok, trochę kombinowane, ale może być.

-- 
Peter
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads