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

Mudar Carregamento em javascript


Marcos Coelho

Pergunta

Olá pessoal,

Estou com um problemaço e espero que vocês possam me ajudar.

Tenho pouquissima experiencia em javascript e preciso de mudar o carregamento em uma pagina.

Deixa eu explicar melhor.

Entrem no link: https://pacoesportes...esult/?q=a&cat=

Nos produtos tem uma imagem de configuração de cor depois de você clicar na cor aparece a configuração do tamanho.

A troca de imagens do produto só é feita depois que seleciono o tamanho mas eu preciso que o produto já no primeiro clique na cor.

Link do meu java script: http://pacoesportes....igurableList.js

Se você entrar nesse link vai ver como quero q aconteça.

https://pacoesportes...a-principal.jsp

(clique na cor e o produto já mudará)

Não sei se ajuda mas vou passar o link do javascript dessa pagina que funciona da forma que eu quero que a outra funcione tmb.

http://pacoesportes....configurable.js

Sei que é muita informação pra um tópico só mas qualquer duvida postem que esclarecerei.

Espero que possam me ajudar com algo pois já tentei bastante coisa e ainda não consegui nada

Creio que esteja nessa parte do codigo meu problema

Product.Config.prototype.selectImage = function(element)
{
    attributeId = element.parentNode.id.replace(/[a-z-]*/, '');
    $('amconf-images-' + attributeId).childElements().each(function(child){
        child.removeClassName('amconf-image-selected');
    });
    element.addClassName('amconf-image-selected');
    
    var pos = attributeId.indexOf('-');
    if ('-1' != pos) {
          var optionId = attributeId.substring(0, pos);
          var parentId = attributeId.substring(pos+1, attributeId.length);
          var elId = element.id.replace(/[a-z-]*/, '');
          pos = elId.indexOf('-');
          elId = elId.substring(0, pos);
          var key = '';
          this.settings.each(function(select){
                // will check if we need to reload product information when the first attribute selected
                if (!select.value && 'undefined' != typeof(confData[parentId]) && confData[parentId].oneAttributeReload && "undefined" != select.options[1])
                {
                    key += select.options[1].value + ',';
                } else
                {
                    if( parseInt(select.value) > 0)
                            key += select.value + ',';
                }
          });
          key = key.substr(0, key.length - 1);
      
          if(confData[parentId]['optionProducts'][key]){
        var parUrl = confData[parentId]['optionProducts'][key]['parent_image'];
          var possl = parUrl.lastIndexOf('/');
             $$('.product-image img').each(function(img){
                  if(img.src.substr(possl, img.src.length) == parUrl.substr(possl, parUrl.length) || img.className == ('amconf-parent-'+parentId)){
                      img.src = confData[parentId]['optionProducts'][key]['small_image'];
                      img.addClassName('amconf-parent-'+parentId);
                  }
             });              
          }
    }  
}
Vou postar tmb da minha outra página que já funciona da forma que eu quero talvez ajude. Creio que pode ser uma pequena diferença entre os dois.
Product.Config.prototype.configureElement = function(element)
{
    // extension Code
    optionId = element.value;
    if ($('amconf-image-' + optionId))
    {
        this.selectImage($('amconf-image-' + optionId));
    } else
    {
        attributeId = element.id.replace(/[a-z-]*/, '');
        if ($('amconf-images-' + attributeId))
        {
        $('amconf-images-' + attributeId).childElements().each(function(child){
            child.removeClassName('amconf-image-selected');
        });
        }
    }
    // extension Code End
    
    this.reloadOptionLabels(element);
    if(element.value){
        this.state[element.config.id] = element.value;
        if(element.nextSetting){
            element.nextSetting.disabled = false;
            this.fillSelect(element.nextSetting);
            this.resetChildren(element.nextSetting);
        }
    }
    else {
        // extension Code
        if(element.childSettings) {
            for(var i=0;i<element.childSettings.length;i++){
                attributeId = element.childSettings[i].id.replace(/[a-z-]*/, '');
                if ($('amconf-images-' + attributeId))
                {
                    $('amconf-images-' + attributeId).parentNode.removeChild($('amconf-images-' + attributeId));
                }
            }
        }
        // extension Code End
        
        this.resetChildren(element);
        
        // extension Code
        if (this.settings[0].hasClassName('no-display'))
        {
            this.processEmpty();
        }
        // extension Code End
    }
    this.reloadPrice();
    
    // extension Code
    var key = '';
    this.settings.each(function(select){
        // will check if we need to reload product information when the first attribute selected
        if (!select.value && 'undefined' != typeof(confData) && confData.oneAttributeReload && undefined != select.options[1] && !confData.isResetButton)
        {
            // if option is not selected, and setting is set to "Yes", will consider it as if the first attribute was selected (0 - is "Choose ...")
            key += select.options[1].value + ',';
        } else
        {
            key += select.value + ',';
        }
    });

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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,5k
×
×
  • Criar Novo...