0

この機能について少し助けが必要です:

function  passar() {  
    var fotos1 = document.getElementById("foto1");
    var fotos2 = document.getElementById("foto2");
    var fotos3 = document.getElementById("foto3");

    if ( fotos1.style.display = "block" ) {   
        fotos1.style.display = "none";  
        fotos2.style.display = "block";  
    } else if ( fotos2.style.display = "block" ) {  
        fotos2.style.display = "none";  
    }  
} 

最初の条件が変更されたときに「fotos 2」を非表示にするはずでしたが、機能しませんでした。誰かが理由を知っていますか?

4

3 に答える 3

3

=割り当て用

==比較のために

===厳密な比較のために

if (fotos1.style.display === "block") {   
fotos1.style.display = "none";  
fotos2.style.display = "block";  
 } else if (fotos1.style.display === "none") {  
 fotos2.style.display = "none";    
  }  
} 
于 2012-05-24T22:21:05.620 に答える
1

あなたの条件文は、比較ではなく代入を行っています:

if (fotos1.style.display === "block") {   
    fotos1.style.display = "none";  
    fotos2.style.display = "block";  
} else if (fotos1.style.display === "none") {  
    fotos2.style.display = "block";    
}

===また、弱い比較を使用して厳密な比較を使用することをお勧めします==。一部のブラウザーでは約 4 倍の速度で比較できるという追加の利点もあります。

于 2012-05-24T22:21:14.293 に答える
0

この場合、二重等号である比較演算子を使用する必要があります。

if (fotos1.style.display == "block") {

代わりに、割り当てパラメーターである単一の equals を使用しています。

if (fotos1.style.display = "block") {
于 2012-05-24T22:21:36.563 に答える