2015-04-07 78 views
0

我需要在兩個div之間更改顯示樣式無窮大時間。第一次改變是正常的,但向後改變不起作用。 此外,我不能使用鏈接到明確的div,因爲我有幾個相同的div。JavaScript更改顯示樣式在兩側

<script type="text/javascript"> 
    function func(el){ 
     if (smth != true) {var smth = false;} 
     if (smth == false) { 
     el.firstElementChild.style.display = 'none'; 
     el.lastElementChild.style.display = 'block'; 
     smth = true; 
     } else { 
     el.firstElementChild.style.display = 'block'; 
     el.lastElementChild.style.display = 'none'; 
     smth = false; 
     } 
    } 
</script> 


<div onClick="func(this)"> 
    <div>1</div> 
    <div style="display:none;">2</div> 
</div> 

回答

1

在代碼中,每次調用func()時都不會定義smth,因爲它不是全局變量。 要解決這個問題,只需使全球通用。

<script type="text/javascript"> 
var smth = false; 

function func(el){ 
    if (smth == false) { 
    el.firstElementChild.style.display = 'none'; 
    el.lastElementChild.style.display = 'block'; 
    smth = true; 
    } else { 
    el.firstElementChild.style.display = 'block'; 
    el.lastElementChild.style.display = 'none'; 
    smth = false; 
    } 
} 
</script> 


<div onClick="func(this)"> 
    <div>1</div> 
    <div style="display:none;">2</div> 
</div>