2013-01-31 91 views
0

我正在一個網站上,並使用JavaScript滾動文本。我正在使用一個計數器和它的工作,但是當它通過條件語句時,它不會隱藏div或者一致。有關爲什麼會發生這種情況的任何想法?JavaScript的計數器工作,但沒有正確隱藏div

謝謝!

HTML:

<div id="arrow2"> 
     <a id="arrowRight" href="javascript:ltoggle('box');"><img alt="Arrow Right" height="auto" src="images/rightarrow.png"></a> 
    </div> 

    <div id="content"> 
     <div class="boxPosition" id="box1"> 
      <p>This is a destination wedding. Come early, and stay late!</p> 
     </div> 

     <div class="boxPosition" id="box2"> 
      <p>Festivities will start on Friday, August 16th.</p> 
     </div> 

     <div class="boxPosition" id="box3"> 
      <p>The wedding will be on Sunday, August 18th late in the day, so you should plan to take Monday off!</p> 
     </div> 

     <div class="boxPosition" id="box4"> 
      <p>a</p> 
     </div> 

     <div class="boxPosition" id="box5"> 
      <p>b</p> 
     </div> 

     <div class="boxPosition" id="box6"> 
      <p>c</p> 
     </div> 

     <div class="boxPosition" id="box7"> 
      <p>d</p> 
     </div> 

     <div class="boxPosition" id="box8"> 
      <p>e</p> 
     </div> 

JS:

var counter = 1; 
    var numBoxes = 8; 

    function toggle(divName){ 
counter++ 
var ele = document.getElementById(divName + counter); 
console.log(divName + counter); 

if(ele.style.display == "block"){ 
    ele.style.display = "none"; 
} 
else{ 
    ele.style.display = "block"; 
} 
if(counter==numBoxes){ 
    counter = 0; 
} 

    } 

回答

0

兩件事情我看到了蝙蝠的權利:你缺少counter++後一個分號,你在你的錨HREF引用javascript:ltoggle('box')而非javascript:toggle('box')

是否改變這些修復?如果沒有,你會介意設置一個JSFiddle來複制問題,以便我們仔細觀察一下嗎?

1

首先,在圖像鏈接中找到門「ltoggle」javascript:ltoggle('box');「未定義。看起來應該只是「切換」。

一個建議是將標籤更改爲:

<a id="arrowRight" href="" onClick="toggle('box');return false;"> 

其次,JavaScript不容易認識到,是由HTML本身設置樣式。所以這條線在第一次將永遠是錯誤的。這是你的「inconsistancy」的問題:

if(ele.style.display == "block") 

爲了解決這個問題,我相信是JS可以用它來找到CSS樣式已經設置,否則,用JS設置一個呼叫。查看本帖子: Get a CSS value with JavaScript

Answere這些和這件事情都可能工作。