2013-03-16 62 views
0

我想要做一個基本的JavaScript/jQuery動畫。基本上,在正常視圖下隱藏的div應當在點擊按鈕時進入視圖。Javascript其他條件不觸發

我遇到的問題是條件(if else聲明)。

這是我正在使用的代碼。

$(document).ready(function() { 
    animationClick('#animateThis', '#someElement', '#startHere'); 
}); 

function animationClick(element, secondElement, elementToBeClicked) { 
    element = $(element); 
    elementToBeClicked = $(elementToBeClicked); 
    secondElement = $(secondElement); 
    var state = 0; 
    var containerWidth = $('#container').width(); 
    elementToBeClicked.on("click", function() { 
     if(state == 0) { 
      secondElement.animate({ 
       top: '27%', 
      }, 500); 
      element.animate({ 
       left: '0%', 
      }, 500); 
      elementToBeClicked.html("Hide"); 
      state = 1; 
     } else { 
      alert('hehehe'); 
     } 
    }) 
}; 

所以,基本上,這是發生了什麼。整個功能被放入document.ready中。當我點擊按鈕(該功能被綁定到)時,if語句返回true,代碼被執行。它也將狀態設置爲1

在狀態設置爲1之後,else if語句應該開始生效並顯示alert("hehehe"),但它不會。

任何人都可以給我一些建議嗎?我究竟做錯了什麼 ?

+0

函數必須是函數 – Anoop 2013-03-16 20:43:06

+0

@Sushil你是什麼意思? – speci 2013-03-16 20:44:08

+0

函數的f應該在lowerCase – Anoop 2013-03-16 20:45:18

回答

2

在第一個if語句中,您已經將"click"事件綁定到"elementToBeClicked"。 嘗試unbind它在if聲明的末尾,然後看看會發生什麼,但通常爲了僅檢查else正在執行,只需將警報從click事件中排除即可。

+0

修正了它。還是行不通。控制檯中沒有錯誤。我注意到,第一個點擊之後的每一次點擊都會再次執行if語句... – speci 2013-03-16 20:49:31

+0

請更新您的代碼,看看您做了什麼。 – 2013-03-16 20:51:15

+0

我更新了代碼.. – speci 2013-03-16 20:53:21

0

我認爲問題是,當你比較變量和零語句if應該使用三個===。像這樣:if(state === 0)

1

你的變量「state」是函數的局部。 這就是爲什麼在函數的後續調用中始終爲0. 初始化該函數以外的變量。