[JavaScript] ClearInterval werkt niet

Pagina: 1
Acties:

  • Plague
  • Registratie: Januari 2001
  • Niet online
Goeiedag,

Ik ben op het moment bezig met een Javascript wat een menuitem highlight. Dit menuitem is afwisselend wit/oranje, door middel van een setInterval. Ik krijg deze interval echter niet gecleared: hij blijft doorgaan, ook al zeg ik dat hij gecleared moet worden... Kan iemand mij hierbij helpen, want ik kom er echt niet uit. :?

JavaScript:
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
41
42
43
function setActiveMenuItem(menuItem) {
    clearMenu(blinkingMenu);
    var menuNames = [menuItems["main"], menuItems["crime"], menuItems["investments"], menuItems["conflict"], menuItems["gambling"], menuItems["forum"]]
    for(var inMenuNames=0;(menuName = menuNames[inMenuNames]); inMenuNames++){
        
        for(var i = 0; i < menuName.length; i++){

            if(menuName[i] == menuItem){
                var OpenedMenus = top.MenuFrame.SaveMenu();
                var OpenedMenusArray = OpenedMenus.split("%");
                if(inArray(OpenedMenusArray, menuTitles[inMenuNames]) === false){
                    top.MenuFrame.OpenMenu(menuTitles[inMenuNames]);
                }
            }
            
            if(top.MenuFrame.document.getElementById(menuName[i])){
                
                if(menuName[i] != menuItem){
                    var objectLinkItemInactive = top.MenuFrame.document.getElementById('link'+menuName[i]);
                    var objectMenuItemInactive = top.MenuFrame.document.getElementById(menuName[i]);
                    objectMenuItemInactive.style.color = "#555555";
                    objectMenuItemInactive.style.fontSize = "11";
                    objectLinkItemInactive.href = "#";
                    objectLinkItemInactive.onclick = function() {alert('Click the right link, shithead!'); return false; };
                    objectLinkItemInactive.onmouseover = function() { this.style.textDecoration = 'none'; this.style.cursor = 'default';};
                }
                else if(menuName[i] == menuItem){
                    var objectMenuItem = top.MenuFrame.document.getElementById(menuItem).style; 
                    objectMenuItem.color = "rgb(238,238,238)";
                    if(inArray(OpenedMenusArray, menuTitles[inMenuNames]) !== false){
                        var blinkingMenu = window.setInterval('blink(\''+menuItem+'\')', 750);
                    }
                    
                    
                }
            }
        }   
    }
}

function clearMenu(activeMenu){
    clearInterval(activeMenu);
}


De vraag is tamelijk eenvoudig: wat doe ik fout dat hij die interval niet cleared? :?

Alvast bedankt.

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Check de scope van je var blinkingMenu eens ;) Die var bestaat nu enkel op "regel 31"; je moet 'm in een andere scope declareren. Lijkt me hint genoeg :Y)

[ Voor 54% gewijzigd door RobIII op 08-03-2007 21:28 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • Plague
  • Registratie: Januari 2001
  • Niet online
Ik heb 'm al buiten de functie gedeclareerd, dat werkt ook niet ;(

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Plague schreef op donderdag 08 maart 2007 @ 22:07:
Ik heb 'm al buiten de functie gedeclareerd, dat werkt ook niet ;(
Heb je dan wel de 'var' weggehaald binnen je functie? ;)

Intentionally left blank


  • Plague
  • Registratie: Januari 2001
  • Niet online
crisp schreef op donderdag 08 maart 2007 @ 23:07:
[...]

Heb je dan wel de 'var' weggehaald binnen je functie? ;)
Ik dank u hartelijk ;) Van alle mogelijke combinaties had ik deze nog niet geprobeerd :X

Maw: het werkt nu prima :)