Toon posts:

[JS] Wat doe ik fout?

Pagina: 1
Acties:

Verwijderd

Topicstarter
ik heb 't volgende script:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<script language="JavaScript" type="text/javascript">
<!--
function expand(listID) {
      if (listID.style.display=="none") {
            listID.style.display="";
      }
      else {
            listID.style.display="show";
      }
      window.event.cancelBubble=true;
}
function contract(listID) {
      if (listID.style.display=="show") {
            listID.style.display="";
      }
      else {
            listID.style.display="none";
      }
      window.event.cancelBubble=true;
}
//-->
</script>

als ik dit aanroep met:
code:
1
[img]"images/themes/coolblue/minus.gif"[/img]

dan gaat alles goed, maar als ik deze functie's aanroep met:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<script><!--
 function contractall() {
 setTimeout("contract(pe13)", 10);
  setTimeout("expand(ph13)", 10);
  setTimeout("contract(pe16)", 260);
  setTimeout("expand(ph16)", 260);
  setTimeout("contract(pe17)", 510);
  setTimeout("expand(ph17)", 510);
  setTimeout("contract(pe19)", 760);
  setTimeout("expand(ph19)", 760);
  setTimeout("contract(pe23)", 1010);
  setTimeout("expand(ph23)", 1010);
 
} function expandall() {
 setTimeout("contract(ph13)", 1010);
  setTimeout("expand(pe13)", 1010);
  setTimeout("contract(ph16)", 760);
  setTimeout("expand(pe16)", 760);
  setTimeout("contract(ph17)", 510);
  setTimeout("expand(pe17)", 510);
  setTimeout("contract(ph19)", 260);
  setTimeout("expand(pe19)", 260);
  setTimeout("contract(ph23)", 10);
  setTimeout("expand(pe23)", 10);
 
}
 --></script>

dan gaat 't fout, ik krijg de error 'window.event is geen of leeg object', ik krijg deze error alleen maar als ik de functie aanroep met 1 van de onderste 2, dan gaat 't fout.
wat voor fout zit er in de code, en wat moet ik doen om deze fout te verhelpen?

//edit: none in show verandert...

  • Scare360
  • Registratie: Juli 2001
  • Laatst online: 18:23
Edit: Window.Event.cancelBubble == null en dus ontvang je een error op je Windows.Event

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Antwoord op topictitel:
Dit posten in P&W ;)
Moved, vanuit P&W naar W&G

Verwijderd

Topicstarter
Op donderdag 04 april 2002 15:42 schreef paulgielens het volgende:
Edit: Window.Event.cancelBubble == null en dus ontvang je een error op je Windows.Event
maar als je 'm op manier A aanvraagt, dan gaat 't goed, maar op manier B dan gaat 't niet goed... terwijl 't beide dezelfde commando's zijn die die stuurt

  • RM-rf
  • Registratie: September 2000
  • Laatst online: 19:15

RM-rf

1 2 3 4 5 7 6 8 9

code:
1
onclick="contract(pe13);expand(ph13);"

wat zijn de Global Variabelen: pe13 en ph13?

ik vermoed eigenlijk dat dit:
code:
1
onclick="contract('pe13');expand('ph13');"

wel goed gaat, maar aanroepen zonder de quotes niet.

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


Verwijderd

Op donderdag 04 april 2002 15:55 schreef RM-rf het volgende:
code:
1
onclick="contract(pe13);expand(ph13);"

wat zijn de Global Variabelen: pe13 en ph13?

ik vermoed eigenlijk dat dit:
code:
1
onclick="contract('pe13');expand('ph13');"

wel goed gaat, maar aanroepen zonder de quotes niet.
Dat lijkt me ook, maar in de functies moet dan listID.style.display worden vervangen door document.getElementById(listID).style.display

Maar wat ik ook nog vreemd vind, is dat je timeouts set zonder deze aan een variabele toe te kennen. Ik geloof dat de juiste syntaxis is:
code:
1
2
3
variabele = setTimeout('functie();', tijd);
en niet
setTimeout('functie();', tijd);

Verwijderd

Topicstarter
Op donderdag 04 april 2002 15:55 schreef RM-rf het volgende:
code:
1
onclick="contract(pe13);expand(ph13);"

wat zijn de Global Variabelen: pe13 en ph13?

ik vermoed eigenlijk dat dit:
code:
1
onclick="contract('pe13');expand('ph13');"

wel goed gaat, maar aanroepen zonder de quotes niet.
de pe13 / ph13 zijn posts in een forum (e - de uitgebreide versie / h - de kleine versie). (<div id="pe13">)
het probleem zit 'm niet in contract(pe13) en expand(ph13), maar in dat window.event.cancelBubble=true;.
het probleem met deze error krijg ik wel in de contractall() versie, maar niet in de directe versie. (met de onclick="")

Verwijderd

Topicstarter
een demo is hier te zien

(klik dan links boven op [-]Contract All Posts)

Verwijderd

Topicstarter
niemand?

  • Xanthus
  • Registratie: Februari 2002
  • Laatst online: 11-07 12:45
Als je:
code:
1
window.event.cancelBubble=true;

weghaalt doet hij het goed bij mij.
disclaimer:
ik weet niet waarvoor jij die regel nodig hebt dus als je hem weghaalt en je pagina niet doet wat jij wilt is het je eigen schuld :P

Verwijderd

Topicstarter
ok thnx ;)

Verwijderd

Topicstarter
volgend vraagje hier ook over,

als ik 2x de functie contract(ca2) aanroep krijg ik de error "Kan de eigenschap display niet opvragen. Ongeldig argument".
dit gebeurd alleen als ik de functie 2x aanvraag.

ca2 is een <div>je

<div id="ca2" style="display:show">

Verwijderd

display: [ inline | block | list-item | run-in | compact | marker | table | inline-table | table-row-group | table-header-group | table-footer-group | table-row | table-column-group | table-column | table-cell | table-caption | none | inherit ];

Daar staat geloof ik geen show tussen :)

Verwijderd

Topicstarter
style="display:show" werkt wel hoor...

Verwijderd

Dit probleem heb ik precies zo:

<P onDragEnd="parent.endDrag(this)">Test</P>

function endDrag(element)
{
event.cancelBubble=true;
element.fireEvent("onMouseOut",event);
}

Ook ik krijg de melding event is leeg of geen object. Ook als ik er window.event van maak. Dat is op zich wel vaag, want die functie wordt aangeroepen door het event onDragEnd. Ik gebruik IE6 btw.

Doe ik dan wat fout ofzo? Ook vreemd is dat ik bij een drag en drop functie in een contentEditable iframe het srcElement niet kan gebruiken.
Pagina: 1