GuuH.zin Postado Janeiro 31, 2011 Denunciar Share Postado Janeiro 31, 2011 Tenho uma dúvida quanto ao "for" do Javascript. No código abaixo, temos... for(var num_images = 0; num_images < document.images.length; num_images++) { if(document.images[num_images].rel!="image_src") { var elem=document.images[num_images]; var alt=$(elem).attr("lightbox:title"); var src=$(elem).attr("src"); var original_elem=new Image(); original_elem.src=elem.src; if(original_elem.width > 580){ $(elem).wrap('<div class="img-resized-warning-container"><a href="'+src+'" rel="lightbox" title="'+alt+'" target="_blank"/></div>'); } else{ if(elem.rel=="lightbox"){ $(elem).wrap('<a href="'+src+'" rel="lightbox" title="'+alt+'" target="_blank"/>'); } } } } ... essas linhas do código var original_elem=new Image(); original_elem.src=elem.src;criam uma nova imagem para cada elemento retornado pelo document.images[num_images] ou apenas para a primeira imagem? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 GuuH.zin Postado Fevereiro 2, 2011 Autor Denunciar Share Postado Fevereiro 2, 2011 (editado) Ok, depois de algum tempo, percebi que dava pra fazer tudo com jQuery, com a função each().Pois bem, atualizei o código e ele ficou assim:$(document).ready(funciton(){ ... $("img").not("[rel='image_src']").each(function(n,element){ var elem_src = $(element).attr("src"); var elem_title; if($(element).attr("lightbox:title")==null || $(element).attr("lightbox:title")==""){elem_title="";}else{elem_title=$(element).attr("lightbox:title");} var original_elem = new Image(); original_elem.src = elem_src; if(original_elem.width > 580){ $(element).wrap('<div class="img-resized-warning-container"><a href="'+elem_src+'" rel="lightbox" target="_blank" title="'+elem_title+'"/></div>'); } else{ if($(element).attr("rel")=="lightbox"){ $(element).wrap('<a href="'+elem_src+'" rel="lightbox" target="_blank" title="'+elem_title+'"/>'); } } }); $("div.img-resized-warning-container").each(function(n,element){ $(element).append('<div class="alert-box">Essa imagem foi reduzida. Clique nela para visualizar o tamanho original.</div>'); }); ... }); Tudo funciona, exceto essa parte do código ... $("div.img-resized-warning-container").each(function(n,element){ $(element).append('<div class="alert-box">Essa imagem foi reduzida. Clique nela para visualizar o tamanho original.</div>'); }); ...O que acontece é que o script acima não adiciona o elemento informado todas as vezes que carrega a página.Tem vezes que ele mostra em todas as imagens maiores que 580px de largura (que seria o correto), tem vezes que ele mostra apenas em algumas imagens mariores que 580px e tem vezes que ele não mostra. O que tem de errado? (O script não tem erros, pois o Internet Explorer mostra apenas "Concluído").Agradeço pela ajuda Editado Fevereiro 2, 2011 por GuuH.zin Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
GuuH.zin
Tenho uma dúvida quanto ao "for" do Javascript. No código abaixo, temos
... for(var num_images = 0; num_images < document.images.length; num_images++) { if(document.images[num_images].rel!="image_src") { var elem=document.images[num_images]; var alt=$(elem).attr("lightbox:title"); var src=$(elem).attr("src"); var original_elem=new Image(); original_elem.src=elem.src; if(original_elem.width > 580){ $(elem).wrap('<div class="img-resized-warning-container"><a href="'+src+'" rel="lightbox" title="'+alt+'" target="_blank"/></div>'); } else{ if(elem.rel=="lightbox"){ $(elem).wrap('<a href="'+src+'" rel="lightbox" title="'+alt+'" target="_blank"/>'); } } } } ...essas linhas do códigocriam uma nova imagem para cada elemento retornado pelo document.images[num_images] ou apenas para a primeira imagem?
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.