2009-11-22 5 views
-1

Salut j'ai besoin d'aide pour comprendre ce code: Cela fonctionne bien mais quelqu'un peut-il ajouter quelques commentaires pour m'aider à mieux le comprendre? MerciAide Javascript - zone de liste déroulante

Voici le code:

function contractall() { 
    if (document.getElementById) { 
     var inc = 0 
     while (document.getElementById("dropmsg" + inc)) { 

      document.getElementById("dropmsg" + inc).style.display = "none" 
      inc++ 
     } 
    } 
} 



function expandone() { 
    if (document.getElementById) { 
     var selectedItem = document.dropmsgform.dropmsgoption.selectedIndex 
     contractall() 
     document.getElementById("dropmsg" + selectedItem).style.display = "block" 
    } 
} 

if (window.addEventListener) window.addEventListener("load", expandone, false) 
else if (window.attachEvent) window.attachEvent("onload", expandone) 
+1

Vous obtiendrez plus de réponses si vous posez des questions plus spécifiques. Si votre question est "J'ai ce code, mais je ne comprends pas la première chose à propos de JavaScript ..." alors je suggère de commencer par un tutoriel décent - http://wsc.opera.com/ – Quentin

Répondre

0

Le contrat de fonction tous les trouve tous les éléments avec l'id de dropmsg0, dropmsg1 ... dropmsgN et les cache. La fonction expanddone montre l'élément sélectionné. Ceci est fait en définissant le style sur les éléments.

Les deux dernières lignes constituent une tentative incomplète de comparaison du navigateur.

Cela fonctionnerait dans plus de navigateurs si une bibliothèque multi-navigateurs comme jQuery était utilisée.

0
function contractall() { 
    if (document.getElementById) { 
     var inc = 0; // counter 
     // loop on all dropmsg in the document 
     while (document.getElementById("dropmsg" + inc)) { 
      // hide one by one 
      document.getElementById("dropmsg" + inc).style.display = "none" 
      inc++ 
     } 
    } 
} 



function expandone() { 
    if (document.getElementById) { 
     var selectedItem = document.dropmsgform.dropmsgoption.selectedIndex; // get the selected item 
     contractall() // hide all in the document 
     // show the selected item 
     document.getElementById("dropmsg" + selectedItem).style.display = "block" 
    } 
} 

// add event handlers to windows load. 
if (window.addEventListener) window.addEventListener("load", expandone, false) 
else if (window.attachEvent) window.attachEvent("onload", expandone) 
Questions connexes