Ir para conteúdo
Fórum Script Brasil
  • 0

Dúvida sobre o "for" do JS


GuuH.zin

Pergunta

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?

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

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 por GuuH.zin
Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...