Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: 'Zdalne' wywołanie metody.
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Teoria
Witam
Mam taką sytuację:

istnieje obiekt:
<div id='przycisk' onClick='no i tutaj to robi swoje' />
jak z poziomu JS wywołać tą metodę onClick?
czyli zrobić coś takiego mniej więcej jak:
document.getElementById('przycisk').onClick() <- o taką linię kodu mi chodzi, tyle że działającą winksmiley.jpg

naszukałem się po necie tego, ale nic nie zdziałałem
webdice
Najprawdopodobniej w onClick masz jakąś funkcję więc w JS wywołaj ją po prostu:

Kod
someFunction ();


Jeśli się mylę podaj więcej szczegółów.
Teoria
No właśnie mam funkcję, ale xajaxową, która jest generowana przez PHP i która za każdym razem ma inne parametry, więc nie mogę tego wywołać w sposób: someFunction()

Mówiąc inaczej:
<div id='przycisk' onClick='nie_wiemy_co_tu_mamy' />

i pytanie: jak wywołać zdarzenie onClick nie klikając na DIVa?
webdice
Wklej więcej kodu, coś się wymyśli.
sticker
funkcja musi mieć jakieś wywołanie sama sie nie wywoła chyba że przez ustawienie timera (ktory tak de fakto jest ustawiany przez programiste lub uruchamiany na jakieś zdarzenie).

Sformułuj lepiej pytanie bo nie rozumiem o co Ci chodzi

tion () { ciało funkcji},false)
Teoria
sticker:
Wiem że funkcja sama się nie wywoła i trochę ciężko mi napisać o co dokładnie mi chodzi.
Ekhem... powiem to tak:

Masz np: button z JAKIMŚ zdarzeniem, ale wiesz tylko że to jest onClick
(<input type='button' onClick='i_tego_nie_wiadomo_co_sie_tu_sie_kryje' /> - jak wywołać to 'onClick' NIE klikając w button?

-----

webdicepl:
no ok, uproszczony kod (chodź wiele on chyba nie pomoże)

  1. <?php
  2. echo "
  3. <form id='formatka'>
  4. <input type='text' name='pole' onKeyDown='funkcjaA' />
  5. <div id='przycisk' ".href('otworz','walcz','xajax.getFormValues('formatka')').">Walcz</div>
  6. </form>";
  7. ?>


Funkcja HREF tak działa:
  1. <?php
  2. function href($rodzaj,$link,$b=0) #FUNKCJA
  3. {
  4. $hash=md5(hashowanie_na_podstawie_paru_danych);
  5. return("onClick="xajax_$rodzaj('$hash','$link',$b)"");
  6. }
  7. ?>

więc kod:
<div id='przycisk' ".href('otworz','walcz','xajax.getFormValues(\'formatka\')').">Walcz</div>
po przetworzeniu wygląda tak:
<div id='przycisk' onClick="xajax_otworz('1234567890abcde...','walcz',0)[">Walcz</div>
więc zdarzenie onClick ma funkcję, która za każdym razem ma inne parametry

i teraz chce stworzyć funkcję

function funkcjaA() (kod 1, linia 4 - jej wywołanie)
{
po kliknięciu entera jest wywoływane zdarzenie onClick z DIVa o nazwie 'przycisk'>

}

Do czegoś już doszedłem

  1. </head>
  2. <body onLoad='funkcja()'>
  3.  
  4. <script type='text/javascript'>
  5. function funkcja()
  6. {
  7. document.getElementById('przycisk').click(); // <- to działa
  8. document.getElementById('przycisk2').click(); // <- a to już nie
  9. }
  10.  
  11. <input id='przycisk' type='button' onClick='alert("wywolano przycisk1")' value='abc'>
  12. <div id='przycisk2' onClick='alert("wywolano przycisk2")'>abc</div>
  13.  
  14. </body>
  15. </html>

co zrobić by to drugie działało?
gekon
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2. <html lang="pl">
  3. <title>on click</title>
  4. <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  5. <script type="text/javascript">
  6. window.onload = function(){
  7. document.getElementById('test').onclick = function(){
  8. onClickDlaTest();
  9. }
  10. }
  11. </script>
  12. </head>
  13.  
  14. <div id="test">klik</div>
  15. <script type="text/javascript">
  16. function onClickDlaTest(){
  17. alert('test'); //tu drukujesz funkcje w php
  18. }
  19.  
  20. </body>
  21. </html>
Skaarj
Cytat(Teoria @ 6.08.2007, 16:41:19 ) *
...ciach...
document.getElementById('przycisk').onClick() <- o taką linię kodu mi chodzi, tyle że działającą wink.gif
...ciach...

Twoja linijka kodu jest "całkiem" poprawna, tylko nazwa funkcji ma być pisana małymi literami a nie CamelCase'm

sprawdziłem to kodem:
<div id="test" onClick="alert('ss');">...</div>
w <script> wsadziłem:
document.getElementById("test").onclick();
i działa

ps. do innych: jak zamierzasz się czepiać, że to stary temat to pisz do mnie TYLKO na priv, tam Cię zbluzgam... ponieważ:
uważam, że kiedyś inny baran taki jak ja ze swojej niewiedzy znajdzie ten temat (problem) i chcę, żeby miał 100% rozwiązanie a problem choćby przedwojenny pozostaje problemem do czasu aż...
...no właśnie
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.