Results 1 to 2 of 2

Thread: Array and setTimeout -- stymied

  1. #1
    Join Date
    Sep 2009

    Array and setTimeout -- stymied

    Hello folks,

    I am stymied by the behavior of the following code fragment. It actually works in IE5, but I get error messages in FF3:

    in <head>
    function timingloop(itemarray,opast,opaend, speed,steps, diff,loops)
    var ti=[];
    var tp=[];

    for( jb=0;jb<=3;jb++){
    for( ib=0;ib<=2;ib++){
    alert('itemarray ='+ib + itemarray[ib]);

    in <body>:

    <body>onload="zxcEleOpacity('Test1',10),zxcEleOpacity('Test2',10),zxcEleOpacity('Test3',10)" style="background-color:black">

    <div id="Test1" style="position:relative;width:200px;height:150px;" >
    <img alt="" src="columbine_1.jpg" />

    <div id="Test2" style="position:absolute;width:200px;height:150px;left:200px;top=400px" >
    <img alt="" src="DSCF0076.jpg" />

    <div id="Test3" style="position:absolute;width:200px;height:150px;left:400px;top=200px" >
    <img alt="" src="DSCF0185.jpg" />

    <script type="text/javascript">

    var itemarray = [];

    alert('array size = '+itemarray.length);

    //initial display



    The "zxc" functions are from a script I got on the web.

    The idea is simple: I have a few elements on the page (with ids 'Test1', 'Test2', etc. whose appearance (opacity I want to change.

    I am setting up an array with the IDs (itemarray), and pass that into a function (timingloop), which calls setTimeout a few times to effect the opacity changes. I think the problem is in the way that I am trying to pass the arguments to the xcEleOpacity() function in the setTimeout function. The function takes 5 parmameters, of which the first one is the Id of the element. FF3 reports an error: 'Test1 is not defined'. IE5 does not report back an error and runs the script the way I want it.

    It's probably the way I need to format the arguments for the setTimeout function, but I have tried numerous different ways, and I can't figure it out.

    Thanks for your help.

  2. #2
    Join Date
    Sep 2009
    Ok, quick update:

    I just found out about "closure" and tried this:


    Errors in both IE5 and FF3.

    Then I tried


    and it works in both FF3 and IE5 !!!

    Now, how do I pass the value of itemarray[1] to the function? I have tried to enclose itemarray[ib] in quotationmarks (which does not amke sense to me) and it doesn't work.

    Also, I heard that the "closure" can lead to a memory leak, which can be prevented by declaring the parameter=null. Do I have to do that for each parameter separately, or is "parameter=null" sufficient for all parmaters?

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
HTML5 Development Center

Recent Articles