Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [js] wywolanie 2 funcji w onkeyup
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
skowron-line
panowie jak wywolac 2 funkcje w zdarzeniu onkeypress i jeszcze do obu przekazac po 4 parametry?
prond
Cytat
panowie jak wywolac 2 funkcje w zdarzeniu onkeypress

Spróbuj tak :
element.addEventListener('click',doSomething,false);
element.addEventListener('click',doSomethingElse,false);

Jednak przyjemniej się to robi wykorzystując prototype.js : http://www.prototypejs.org/api/event/observe
Tam masz już gotowe rozwiązanie problemu z this dla metod obsługujących zdarzenia.

Cytat
jeszcze do obu przekazac po 4 parametry

Tu nie bardzo rozumiem. Zdarzenie jedynie przekazuje do funkcji, która je obsługuje obiekt typu Event, z którego możesz się dobrać do obiektu, który wywołał zdarzenie i innych własności.
Może jednak chodzi Tobie o tzw. funkcje anonimowe:

element.addEventListener('click',function () {
doSomething('a', 1, 2, 3);
},false)
skowron-line
znalazlem taki przyklad w ksiazce
  1. <head>
  2. <script type="text/javascript">
  3.  
  4. var click = function() {
  5. alert('a');
  6. }
  7.  
  8. var click2 = function() {
  9. alert('b');
  10. }
  11.  
  12. var div = document.getElementById('abc');
  13. div.addEventListener('onclick',click);
  14. div.addEventListener('onclick',click2);
  15.  
  16. </script>
  17. </head>
  18. <body>
  19.  
  20. <div id="abc">
  21. sdad
  22. </div>
  23.  
  24. </body>
  25. </html>


ale jakos nieche trybic?
php programmer
A czy wiesz jak wywołać jedną funkcję?

Jak tak to wywołaj podstwioną funkcję, która jest w postaci:

Kod
function JednaFunkcja(){
funkcja1();
funkcja2();
}
Cysiaczek
można tez oldschoolowo : P
  1. <input type="text" onkeypress='func1(); func2();' />
skowron-line
  1. <head>
  2. <script type="text/javascript">
  3.  
  4.  
  5. function pokaz(el,el2){
  6.  
  7. function poka(el) {
  8. alert('zegnaj '+el);
  9. }
  10.  
  11. function poka2(el2){
  12. alert('witaj '+el2);
  13. }
  14. }
  15.  
  16. </script>
  17. </head>
  18. <body>
  19.  
  20. <div id="abc">
  21. <a href="#" onclick="pokaz('ziom','ziom');">aaa</a>
  22. </div>
  23.  
  24. </body>
  25. </html>


cos takiego tez niedziala a konsola bledow nie pokazuje nic

Cytat(Cysiaczek @ 23.05.2007, 11:14:40 ) *
można tez oldschoolowo : P
  1. <input type="text" onkeypress='func1(); func2();' />


no i o to chodzilo biggrin.gif dzieki Cysiaczek
prond
1. addEventListener wywołujesz w nagłówku, a tam nie masz od razu dostępu do div'ów. Umieść ten kod poniżej swojego DIVa, albo wykonaj go przy body.onload
2. Masz błąd w div.addEventListener('onclick',click);, powinno być div.addEventListener('click',click);
3. addEventListener potrzebuje 3 argumentów (ostatni jest boolean i decyduje o kolejności odpalania eventów, poczytaj sobie : http://www.quirksmode.org/js/events_order.html)

Po tych poprawkach wygląda to mniej więcej tak:
  1.  
  2. <div id="abc">
  3. sdad
  4. </div>
  5.  
  6. <script type="text/javascript">
  7.  
  8. var click = function() {
  9. alert('a');
  10. }
  11.  
  12. var click2 = function() {
  13. alert('b');
  14. }
  15.  
  16. var div = document.getElementById('abc');
  17. div.addEventListener('click',click,false);
  18. div.addEventListener('click',click2,false);
  19.  
  20. </body>
  21. </html>
Sedziwoj
@prond prawidłowo powinno być window.onload, ponieważ dopiero po załadowaniu całego dokumentu jest zbudowane całe drzewo.
Co prawda jak jest za elementem, to go już działa w przeglądarkach, ale to nie jest prawidłowe.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.