variabele in een embedded functie

Status
Niet open voor verdere reacties.

manitas

Nieuwe gebruiker
Lid geworden
15 nov 2007
Berichten
3
Weet iemand hoe ik een variabele aan een functie mee kan geven die wordt aangeroepen in een andere functie zoals hieronder: setInterval(functie(variabele), 2);
Zonder een nieuwe variabele aan te maken...

:rolleyes:

HTML:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<script type="text/javascript">

var scrollId;

function highlightId (textId) {

//stukkie weggelaten
//

scrollId= setInterval('toFunction(textId)', 2);
}


function toFunction(id) {
alert(id);
clearInterval(scrollId);
 } 

</script>
</head>
<body>
<div id="id111" onmouseover="highlightId('id111')">hier staat de eerste</div><br/> 
<div id="id222" onmouseover="highlightId('id222')">hier staat de tweede</div>

</body>
</html>
 
Laatst bewerkt door een moderator:
Ik snap niet precies wat je nou wil / bedoelt..
Je kan een 'globale' variabele maken (zoals var scrollid), die staat buiten alle functies.



Probeer eens dit:
Code:
<script type="text/javascript">
var scrollId;

function highlightId (textId) {
	//stukkie weggelaten
	scrollId= setInterval("toFunction(" + textId + ")", 2);
}

function toFunction(id) {
	alert(id);
	clearInterval(scrollId);
 } 

</script>

Als je een variable in een string wil meegeven (want dat wil je bij de functie setInterval()), dan moet je de string onderbreken en de variabele toevoegen dmv "+".
 
Laatst bewerkt:
Ja dat had ik zelf ook al bedacht maar ik vind dit een erg lelijke oplossing.
Je zou toch op een of andere manier de variabele intact moeten kunnen laten en als zodanig meegeven en niet als een string.
Zoiets als in PHP met $ gebeurt zoek ik.

Hetgeen jij bedoelt zou ik trouwens in een aparte declaratie van een variabele doen en dan deze nieuwe variabele meegeven:

var tijdelijk = "toFunction("+ textId + ")";
scrollId= setInterval(tijdelijk, 2);
 
Ja dat had ik zelf ook al bedacht maar ik vind dit een erg lelijke oplossing.
Je zou toch op een of andere manier de variabele intact moeten kunnen laten en als zodanig meegeven en niet als een string.
Zoiets als in PHP met $ gebeurt zoek ik.

Hetgeen jij bedoelt zou ik trouwens in een aparte declaratie van een variabele doen en dan deze nieuwe variabele meegeven:

var tijdelijk = "toFunction("+ textId + ")";
scrollId= setInterval(tijdelijk, 2);

In PHP zou je zoiets krijgen:
$tijdelijk = "toFunction(" . $textId . ")";
$scrollId = setInterval($tijdelijk, 2);

Als je een parameter in een string mee wil geven (wat hier niet anders kan lijkt mij), zal je het zo moeten doen.
Wanneer je veel met javascript gaat werken zal je zien dat je er bij veel dingen niet omheen kan om het zo te doen.
En waarom niet? In PHP scheid je het toch dmv een .? :)


Het hele principe van die "+" is dat je de variabele júist intact laat, omdat je 'm úit de string haalt (!). Daarnaast kan je er niet om heen (behalve een globale variabele ervan te maken) om én de functie én de parameter mee te geven in de functie aanroep van "setInterval".
 
Laatst bewerkt:
Ik heb de oplossing die je aandroeg steeds gebruikt.
De reden dat ik het post is om te zoeken naar een nettere oplossing.

Een nieuwe variabele declareren om deze in een andere onder te brengen zie ik als een soort work-around.
Als het niet anders kan in javascript dan zij het zo.

In iedergeval bedankt voor je reactie.
:confused:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan