i'm developing application relies on webservice calls in order create tree-like "menu", works intended realized not target audience has fast internet connection have right on development environment. goal show loading "screen" while javascript function creates , adds elements dom, flowchart follows:
- user click on "expand" image of node
- user sees div loading gif
- user presented childnodes
i'm not sure should put timeout
my code:
... elemento_tema_imagem_esconde_mostra.addeventlistener("click", get_feat); ... function get_feat(event) { tema_expandido = event.target.parentnode; if (typeof (tema_expandido.getelementsbytagname("ul")[0]) === "undefined") { smnid = event.target.parentnode.getelementsbytagname("a")[0].getattribute("mnid"); var service = new webjson; service.getfeat(smnid, successcallback_get_feat, onfailurecallback_get_feat); } else { //debugger; var elemento = tema_expandido.getelementsbytagname("ul")[0]; var imagem_esconder_mostar = elemento.parentnode.childnodes[0]; var style = window.getcomputedstyle(elemento, null); if (style.display == "block") { elemento.style.display = "none"; imagem_esconder_mostar.src = "content/images/img_abrir_22_22.png"; } else if (style.display == "none") { elemento.style.display = "block"; imagem_esconder_mostar.src = "content/images/img_fechar_22_22.png"; } } }; function successcallback_get_feat(resultado_get_feat) { var colleccao_feat = json.parse(resultado_get_feat); var lista_feat = document.createelement("ul"); lista_feat.setattribute("class", "lista-sem-bullets"); (var = 0; < colleccao_feat.length; i++) { var elemento_feat = document.createelement("li"); var elemento_feat_imagem_esconde_mostra = document.createelement("img"); var elemento_feat_imagem_no = document.createelement("img"); var elemento_feat_link = document.createelement("a"); if (colleccao_feat[i].filhos > 0) { elemento_feat_imagem_esconde_mostra.src = "content/images/img_abrir_22_22.png"; elemento_feat_imagem_esconde_mostra.addeventlistener("click", get_compo); } else if (colleccao_feat[i].filhos = 0) { elemento_feat_imagem_esconde_mostra.src = "content/images/seta_dir_26_20.png"; } //elemento_feat_imagem_esconde_mostra.addeventlistener("click", get_feat); //elemento_feat_imagem_no.src = "content/images/feat.png" elemento_feat_link.setattribute("fnid", colleccao_feat[i].fnid); elemento_feat_link.innertext = colleccao_feat[i].namedesc; elemento_feat.appendchild(elemento_feat_imagem_esconde_mostra); elemento_feat.appendchild(elemento_feat_imagem_no); elemento_feat.appendchild(elemento_feat_link); lista_feat.appendchild(elemento_feat); }; document.getelementbyid("mymodal_loading").style.display = "none"; tema_expandido.appendchild(lista_feat); tema_expandido.childnodes[0].src = "content/images/img_fechar_22_22.png"; }; function onfailurecallback_get_feat(error) { //displaying error on alert box alert(error); }; any appreciated
Comments
Post a Comment