2011-08-29 86 views
0

我有以下功能:变量不工作

function slideDown() { 
    //get the element to slide 
    sliding = document.getElementById('slideDiv1'); 
    //add 1px to the height each time 
    sliding.style.height = parseInt(sliding.style.height)+1+'px'; 
    t = setTimeout(slideDown,30); 
    if (sliding.style.height == "401px") { 
     clearTimeout(t); 
    } 
} 

被称为这个函数中:

function addDiv(nextImageSlide) { 
    //finds the src attribute of the image nested in the Li 
    elemChild = nextImageSlide.firstChild; 
    imageSrc = elemChild.getAttribute('src'); 
    //loops and creates six divs which will be the slices. adds background property etc 
    for (i = 0, j = 0, k = 1; i< = 19; i++, j++, k++) { 
     var newDiv = document.createElement('div'); 
     newDiv.setAttribute('class', 'new-div'); 
     newDiv.id='slideDiv' + k; 
     newDiv.style.height = '1px'; 
     newDiv.style.background = 'url(' + imageSrc +') scroll no-repeat - '+39.5 * j + 'px 0'; 
     var a = document.getElementById('content'); 
     a.appendChild(newDiv); 
    } 
    slideDown(); 
} 

被称为定义nextImageSlide另一个函数内。它后来删除了它所做的所有div。

这个想法是为图片库。当用户点击下一个按钮时,我希望下一张图片的片段向下滑动以显示下一张图片。然后将这些切片拿走并揭示新图像。

我想要这样的:http://workshop.rs/projects/jqfancytransitions/

这是一个任务,所以我们必须编写所有的代码自己,这是我能想到复制它的最佳方式。唯一的问题是,我不断收到错误:

'sliding is null. sliding.style.height = parseInt(sliding.style.height)+1+'px';' 

无论我做什么,我都摆脱不了它。问题是,如果我将滑动定义为完全不同的id(例如,我在所有内容之外创建了一个随机的小div),它就可以工作。

这个错误显示了当我尝试访问div时,它只是让它引发了一个饥饿症状。 任何人都看到我的代码中的任何错误? 干杯

+1

我们展示你的HTML。如果没有包含id =“slideDiv1”'的对象,'sliding'将为空。另外,你并没有把'var'放在你的函数前面的很多局部变量中,这使得它们成为全局变量。这通常是一件坏事,可能会导致其他类型的错误。这些例子是:滑动,elemChild和imageSrc。 – jfriend00

+0

我没有看到任何明显的错误(除了汽车/ var事物Marc B指出),但尽管它不应该导致你的错误,你应该用'var'声明_all_变量,否则'i,j, k,elemChild,imageSrc,sliding和t'将是全局的。另外,为什么设置超时,然后检查是否立即清除它?为什么不用if来决定是否把它放在第一位呢?你也不需要'j',因为它总是和'I'一样。 – nnnnnn

+0

好吧,我想通了它为什么不工作,但感谢你的家伙帮助其他事情。我并没有把var放在前面,并且搞砸了其他一些东西,所以现在全部修好了,欢呼!我正在检查是否清除它,因为它是动画的div的高度。所以它增长,然后当它达到401px停止增加高度。所以基本上我想要的功能循环,直到高度达到401px。 – Matt

回答

0

但愿这只是一个错字,同时粘贴到该网站在这里,但:

car a = document.getElementById('content'); 
    ^---syntax error, which'll kill your entire script - var? 
+0

对不起,对我的版本是var,肯定是错的,在这里粘贴它 – Matt