Javascript vraag

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Toby hinloopen

toby hinloopen

07/03/2009 17:46:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?

var fxslides = {};
for(var x=0;x < $$('.listsection').length;x++) {
    
    $$('.listitem')[x].addEvent('mouseenter',function(){fxslides[x].slideIn();});
    $$('.listsection')[x].addEvent('mouseleave',function(){fxslides[x].slideOut();});
    
    fxslides[x] = new Fx.Slide($$('.listdetails')[x],{
        duration:1000,
        link:'cancel',
        transition:Fx.Transitions.Bounce.easeOut
    });
    fxslides[x].hide();
}


?>


Bij het uitvoeren van deze code worden er aan meerdere element een event toegevoegd. Zodra deze event gestart wordt, wordt de functie "function(){fxslides[x].slideOut();}" gestart. Echter, wanneer deze functie gestart wordt krijg ik de error dat "x" niet bestaat.

Dat komt namelijk omdat X buiten de functie is aangemaakt in de FOR loop. Hoe kan ik X meegeven aan de functie?
 
PHP hulp

PHP hulp

20/04/2024 03:59:08
 
Wesley Overdijk

wesley Overdijk

07/03/2009 17:48:00
Quote Anchor link
functie aanroepen in de loop. op de laatste draai?
 
Toby hinloopen

toby hinloopen

07/03/2009 17:53:00
Quote Anchor link
wesley schreef op 07.03.2009 17:48:
functie aanroepen in de loop. op de laatste draai?

snap niet wat je bedoeld.
 
Pieter van Linschoten

Pieter van Linschoten

07/03/2009 21:01:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
for(var x=0;x < ($$('.listsection').length-1);x++) {
?>


een -1 meegeven aan de lenght, want je begint namelijk met tellen bij 0.
 
Willem Jan Z

Willem Jan Z

07/03/2009 23:48:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
function(x){fxslides[x].slideIn();}
dit al geprobeerd?

En geen idee wat Lapidi raaskalt... Zie de relevantie totaal niet...
 
Toby hinloopen

toby hinloopen

07/03/2009 23:50:00
Quote Anchor link
Heb al een andere oplossing.
Wat jij nu zegt had ik al onderzocht, maar in jouw geval wordt "x" toegewezen met de event details en niet de x uit de for-loop.
 
Willem Jan Z

Willem Jan Z

07/03/2009 23:55:00
Quote Anchor link
toby hinloopen schreef op 07.03.2009 23:50:
Heb al een andere oplossing.
Wat jij nu zegt had ik al onderzocht, maar in jouw geval wordt "x" toegewezen met de event details en niet de x uit de for-loop.


Was ik inderdaad al bang voor. Maar wat is je andere oplossing? Want er moet ook wel een geldige oplossing zijn lijkt me.
 
Toby hinloopen

toby hinloopen

08/03/2009 00:08:00
Quote Anchor link
WillemJan Z schreef op 07.03.2009 23:55:
toby hinloopen schreef op 07.03.2009 23:50:
Heb al een andere oplossing.
Wat jij nu zegt had ik al onderzocht, maar in jouw geval wordt "x" toegewezen met de event details en niet de x uit de for-loop.


Was ik inderdaad al bang voor. Maar wat is je andere oplossing? Want er moet ook wel een geldige oplossing zijn lijkt me.


Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
28
29
30
31
32
33
34
35
36
37
38
39
40
<?

foreach($results as $key=>$result) {
    
    echo '<div class="subsection listsection">';
        echo '<div class="listitem" style="height:70px;">';
            
            echo '<img src="img/300x200_01.png" style="height:70px;"/>';
        
        echo '</div>';
        echo '<div class="listdetails">';
        
            echo '<img src="img/300x200_01.png"/>';
        
        echo '</div>';
    echo '</div>';
    
    if($LIST_FX_TRIGGER) {
        echo '<script type="text/javascript">fxslides['.$key.'] = new Fx.Slide($$(\'.listdetails\')['.$key.'],{duration:400,link:\'cancel\'}).hide();';
        
        if($LIST_FX_TRIGGER == 'hover') {
            echo '$$(\'.listsection\')['.$key.'].addEvent(\'mouseenter\',function(){fxslides['.$key.'].slideIn();});';
            echo '$$(\'.listsection\')['.$key.'].addEvent(\'mouseleave\',function(){fxslides['.$key.'].slideOut();});';
        }
elseif($LIST_FX_TRIGGER == 'click') {
            echo '$$(\'.listitem\')['.$key.'].addEvent(\'click\',function(){fxslides['.$key.'].toggle();});';
        }
elseif($LIST_FX_TRIGGER == 'click/autoclose') {
            echo '$$(\'.listitem\')['.$key.'].addEvent(\'click\',function(){fxslides['.$key.'].slideIn();});';
            echo '$$(\'.listsection\')['.$key.'].addEvent(\'mouseleave\',function(){fxslides['.$key.'].slideOut();});';
        }
elseif($LIST_FX_TRIGGER == 'click/hover') {
            echo '$$(\'.listitem\')['.$key.'].addEvent(\'click\',function(){if(fxslides['.$key.'].open){fxslides['.$key.'].slideOut();fxslide_hover=false;}else{fxslides['.$key.'].slideIn();fxslide_hover=true;}});';
            echo '$$(\'.listsection\')['.$key.'].addEvent(\'mouseenter\',function(){if(fxslide_hover){fxslides['.$key.'].slideIn();}});';
            echo '$$(\'.listsection\')['.$key.'].addEvent(\'mouseleave\',function(){if(fxslide_hover){fxslides['.$key.'].slideOut();}});';
        }

        
        echo '</script>';        
    }
    
}


?>
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.