ďťż

[js] Dodawanie Obsługi Znarzeń

       

Podstrony


telcocafe

Witam,

Tworzę tabelę przez DOM Javascript i chcę niektórym komórkom ustawić atrybuty:
onmouseover="tip('2', 'show')" onmouseout="tip('2', 'hide')"
Gdzie "2" dalej będzie nazywana zmienną z (gdyż nie zawsze będzie miała wartość 2).

Po przeczytaniu książki wzbogaciłem swoją wiedzę o informację, że można to zrobić za pomocą metody addEventListener.
Wszystko działa poprawnie dopóki nie zechcę dodać jakiś parametrów - wytłumaczę na przykładzie:
myObject.addEventListener("mouseover", show, false); myObject.addEventListener("mouseout", hide, false);
Działa bez zastrzerzeń, lecz:

myObject.addEventListener("mouseover", tip(z, "show"), false); myObject.addEventListener("mouseout", tip(z, "hide"), false);
Po pierwsze wykonuje funkcję tip(z, "show") wraz z załadowaniem strony (a powinna zostać wykonana dopiero po mouseover dla objektu myObject), a po drugie wypluwa błąd.


Error: uncaught exception: [Exception... "Could not convert Javascript argument" nsresult: "0x80570009 (NS_ERROR_XPC_BAD_CONVERT_JS)" location: "JS frame :: file:///D:/Ksi%C4%85%C5%BCki/Javascript.%20Zaawansowane%20Programowanie/Rozdzial_09/EventHandler1.htm :: postLoadInit :: line 10" data: no]

Kod:
<HTML> <HEAD> &lt;script LANGUAGE="Javascript"> var myObject; function postLoadInit() { myObject = document.body.childNodes[1]; var z = 2; // Na przykład myObject.addEventListener("mouseover", tip(z, "show"), false); myObject.addEventListener("mouseout", tip(z, "hide"), false); } function tip(day, action) { alert("Day ma wartosc: " + day + ", a action: " + action); } </SCRIPT> </HEAD> <BODY onload="postLoadInit()"> <div>Goodbye Cruel World</div> <span onmouseover="tip('3', 'show')" onmouseout="tip('3', 'hide')">To działa, więc w funkcji tip nie ma błędów.</span> </BODY> </HTML>

Moje pytanie brzmi: Jak mogę dodać funkcje z argumentami do obiektu jako obsługę zdarzeń mouseover i mouseout?

Z góry dziękuję za odpowiedź i pozdrawiam



A spróbuj zamienić:
myObject.addEventListener("mouseover", tip(z, "show"), false); myObject.addEventListener("mouseout", tip(z, "hide"), false);
na:
myObject.addEventListener("mouseover", 'tip(z, "show")', false); myObject.addEventListener("mouseout", 'tip(z, "hide")', false);
?

Ach, i może jeszcze daj funkcję tip przed tą, gdzie wykonujesz powyższy kod :)
Użytkownik pbnan edytował ten post 30 styczeń 2007, 17:37
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.