Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [js] blokowanie funkcji zdarzeniwej., nie chodzi o prawy klawisz myszy
gebp
post 27.05.2007, 18:43:38
Post #1





Grupa: Zarejestrowani
Postów: 180
Pomógł: 6
Dołączył: 10.04.2006

Ostrzeżenie: (0%)
-----


Potrzebuje zablokować chwilowo funkcję zdarzeniową "ondblclick".

Ale do rzeczy:
Na stronie mam kilka tabel które mają przypisaną funkcję zdarzeniową "ondblclick". Potrzebuje, po kliknięciu na daną komórkę 2 razy ( co powoduje wywołanie funkcji przypisanej dla "ondblclick") zablokować możliwość podwójnego kliknięcia do czasu wykonania funkcji z zdarzenia "ondblclick". ( u mnie po "ondblclick" wyświetla się input do wpisania pewnych danych a po jego uzupełnieniu dane są wstawiane do tej komórki.)

Moja koncepcja opierała się o stworzenie tablicy i tam zapisanie czy zostało wykonane double-click na danej komórce czy też nie ( wartości 1, 0). Jednakże koncepcja jak szybko powstała tak i upadła ze względu na to iż komórki mają id literowo-liczbowe i nie ma siły by miały samo liczbowe (tabele są podzielone na pewne grupy a w danych grupach cyfry się mogą powtarzać).


Dlatego zapytowywuję się:

Jak zablokować funkcję zdarzeniową "ondblclick" (przypisaną do pewnego elementu ) do czasu wykonania jakiejś tam funkcji) ?
Go to the top of the page
+Quote Post
sticker
post 27.05.2007, 18:51:35
Post #2





Grupa: Zarejestrowani
Postów: 611
Pomógł: 19
Dołączył: 28.02.2005
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


mozesz odrejestrowac listenera na te akcje na poczatku wykonania funkcji obsługi a na końcu spowrotem ją zarejestrowac


--------------------
Go to the top of the page
+Quote Post
gebp
post 27.05.2007, 18:59:07
Post #3





Grupa: Zarejestrowani
Postów: 180
Pomógł: 6
Dołączył: 10.04.2006

Ostrzeżenie: (0%)
-----


A możesz napisać co to jest "listener". Faktycznie nie napisałem że jestem cienki jak sik pająka w javascript.

Możesz dać przykład ?
Go to the top of the page
+Quote Post
sticker
post 27.05.2007, 19:03:58
Post #4





Grupa: Zarejestrowani
Postów: 611
Pomógł: 19
Dołączył: 28.02.2005
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


tu cos jest

mam nadzije że ci to coś pomoże

Ten post edytował sticker 27.05.2007, 19:04:45


--------------------
Go to the top of the page
+Quote Post
gebp
post 28.05.2007, 14:07:12
Post #5





Grupa: Zarejestrowani
Postów: 180
Pomógł: 6
Dołączył: 10.04.2006

Ostrzeżenie: (0%)
-----


dzięki pomogło.



Jednak napotkałem pewien problem.
  1. <tr>
  2. <td id="asd1">
  3. <input id="dds1" type="text" value="Wpisz cyfrę" onchange="sendu('asd1')">
  4. </td>

i funkcje js.
  1. function sendu(idcell,idinputa)
  2. { por=$(idinputa).value;
  3. if (por=='5')
  4. { $(idcell).innerHTML = $(idinputa).value;
  5. $(idcell).ondblclick= cell(idcell); // przypisanie zdarzenia nie działa
  6. }
  7. else
  8. { alert("Błędna cyfra");}
  9. }
  10. function cc(idcell) // zmiana koloru komurki
  11. { var col = $(idcell).style.backgroundColor;
  12. $(idcell).style.backgroundColor="#00ffff";
  13. $(idcell).onmouseout = function ()
  14. {$(idcell).style.backgroundColor= col; }
  15. }
  16. cell(idcell)
  17. { $(idcell).ondblclick= null;
  18. $(idcell).innerHTML = "<input id=\"dds1\" type=\"text\" value=\"Wpisz cyfrę\" onchange=\"sendu('asd1')\">";
  19. }

Oczywiście powyższe jest tylko przykładem. W rzeczywistości w sendu() pobieram za pomocą AJAX'a dane i takie tam ale to nie ma większego znaczenia.

A teraz tłumacze.
Mam komórkę z inputem. Jak na nią najadę mychą to OK ( zmienia kolor). Następnie gdy do inputa wpiszę cyfę 5 ( to jest przykładowo dla zobrazowania) to wywal mi inputa i wstawia do komórki cyfrę 5.
I tu pojawia się problem. Jednocześnie z podmianą wartości komórki chciałbym nadać jej jeszcze jedną funkcję zdarzeniową ( ondbclick) która powodowała by ( w przykładzie i w moim projekcie) wstawienie inputa do komórki.
Niestety mój powyższy zapis powoduje albo błąd - " nie zidentyfikowaną wartość idcell " - (questionmark.gifquestionmark.gif) albo wykonanie funkcji cell().
I to właśnie problem nie chcę wykonywać funkcji idcell() tylko przypisać ją jako zdarzenie ondbclick dla danej komórki.

Gdzie robie błąd questionmark.gif

Ten post edytował gebp 28.05.2007, 14:06:56
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 3.05.2025 - 11:18