[js] probleem met indexOf

Pagina: 1
Acties:

  • paragon
  • Registratie: April 2000
  • Laatst online: 05:50
Ik heb de volgende functie gemaakt voor het veranderen van stylesheet:

function changeStyle(type) {
var css;
var top = left = 0;
css = type
document.getElementById('style').setAttribute('href',css);
if (type.indexOf("advanced", 0)) {
centerLayer();
}
else {
getElm('main').style.top = top+'px';
getElm('main').style.left = left+'px';
}

Als ik hier dus het stylesheet avanced wil gebruiken moet de functie centerlayer aangeroepen worden. Alleen is het probleem nu dat wanneer ik weer naar een ander stylesheet ga
deze layer niet op 0,0 wordt gezet.

voorbeeld: http://paragonxls.xs4all.nl/Beta/

Ik kom er nu dus achter dat de layer altijd gecenterd wordt. Hmm wat is er fout in mijn functie

Verwijderd

Volgens mij kan je beter dit gebruiken:

if (type.indexOf("advanced")==0))

in plaats van

if (type.indexOf("advanced", 0))

  • paragon
  • Registratie: April 2000
  • Laatst online: 05:50
Op woensdag 10 april 2002 06:54 schreef daxx909 het volgende:
Volgens mij kan je beter dit gebruiken:

if (type.indexOf("advanced")==0))

in plaats van

if (type.indexOf("advanced", 0))
Als ik dat doe dan krijg ik een syntaxis fout. Heb nu even geen mozilla bij de hand anders kon ik het beter uitleggen.

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

string1.indexOf(string2)

geeft de positie terug waar string2 in string1 gevonden wordt. Als string2 niet gevonden wordt geeft ie -1 terug.

Wil je weten of de string erin voorkomt moet je dus simpelweg kijken of wat je terugkrijgt groter is dan -1.
code:
1
2
3
4
5
if(tekst.indexOf("bla")>-1){
   alert("bla komt in tekst voor");
}else{
   alert("bla komt NIET in tekst voor");
}

Verwijderd

Het kan natuurlijk ook zo zijn dat wanneer je 'mijn' syntax gebruikt, er aan een conditie voldaan wordt, waardoor een 'buggy' stukje code wordt uitgevoerd, dat die foutmelding genereert.

  • paragon
  • Registratie: April 2000
  • Laatst online: 05:50
Op woensdag 10 april 2002 09:55 schreef daxx909 het volgende:
Het kan natuurlijk ook zo zijn dat wanneer je 'mijn' syntax gebruikt, er aan een conditie voldaan wordt, waardoor een 'buggy' stukje code wordt uitgevoerd, dat die foutmelding genereert.
Nope het is de regel waar die indexOf instaat, maar ik ga even naar huis want Remote Desktop is ook niet alles.

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

Der is niks mis met die indexOf van daxx. Waarschijnlijk ben jezelf een haakje vergeten of is de input (type) niet goed.

  • paragon
  • Registratie: April 2000
  • Laatst online: 05:50
Op woensdag 10 april 2002 10:28 schreef Bosmonster het volgende:
Der is niks mis met die indexOf van daxx. Waarschijnlijk ben jezelf een haakje vergeten of is de input (type) niet goed.
Waarschijnlijk toch wel want if(type.indexOf("advanced")>-1)
werkt wel naar behoren. Is het niet zo dat als die gelijk zou zijn aan nul de string advanced op plaats 0 begint.

Verwijderd

Is het niet zo dat als die gelijk zou zijn aan nul de string advanced op plaats 0 begint.
Dat wil je toch, dacht ik? Bijvoorbeeld "advanced:blabla"

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

Op woensdag 10 april 2002 12:30 schreef paragon het volgende:

[..]

Waarschijnlijk toch wel want if(type.indexOf("advanced")>-1)
werkt wel naar behoren. Is het niet zo dat als die gelijk zou zijn aan nul de string advanced op plaats 0 begint.
Yup.. maar dat zou toch geen foutmeldingen moeten geven, ongeacht of de bedoeling juist is.
Pagina: 1