2011-08-29 76 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