2009-11-22 2 views
-1

Привет Мне нужна помощь в понимании этого кода: Это хорошо работает, но может кто-нибудь добавить комментарии, чтобы помочь мне лучше понять? БлагодаряJavascript help - поле со списком

Вот код:

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

У вас больше шансов получить больше ответов, если вы уточните свой вопрос. Если ваш вопрос: «У меня есть этот код, но я не понимаю первое, что касается JavaScript ...», то я предлагаю начать с достойного учебника - http://wsc.opera.com/ – Quentin

ответ

0

Функция контракта все находит все элементы с идентификатором dropmsg0, dropmsg1 ... dropmsgN и скрывает их. Функция expanddone показывает выбранный элемент. Это делается путем установки стиля на элементов.

Последние 2 строки являются неполной попыткой сопоставимости браузера.

Он работал бы в более браузерах, если бы использовалась кросс-браузерная библиотека, такая как jQuery.

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)