Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

VCastilho

Erro Javascript no console

Recommended Posts

Esta aparecendo um erro no console do meu site com a seguinte mensagem:

Uncaught TypeError: Cannot read property 'top' of undefined
 at HTMLDocument.<anonymous>

Segue o código com erro:

 

jQuery(document).ready(function( $ ) {

	var  mn = $(".sticky-main-nav");
	var  bsf = $(".below-sticky-frame");
	mns = "main-nav-scrolled";
	bsfp= "below-sticky-frame-position";
	hdsticky = $('.fusion-header').height();

	if($('#wpadminbar')){
		admin = $('#wpadminbar').height();
		hdsticky = hdsticky + admin;
	}

	var bottom = $('.sticky-main-nav').offset().top;
	$(window).scroll(function(){
	    if ($(this).scrollTop() > bottom && $( window ).width() > 700){
	        mn.addClass(mns);
	        bsf.addClass(bsfp);
	        mn.css({'top': + hdsticky});
	    }
	    else{
	        mn.removeClass(mns);
	        bsf.removeClass(bsfp);
	    }
	});

});

Poderiam me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ali na primeira linha...

 

jQuery(document).ready(function( $ ) {

O .ready executa a função sem passar o argumento $. Então ele deve estar utilizando o método $ global na página, em alguns casos, como o chrome, é implementado um buscador parecido com a jQuery, que faz a busca sobre os elementos da páginas mas não retorna a mesma coisa, retorna um objeto HTMLDocument (aquele encontrado na mensagem de erro). Recomendo você fazer algo parecido com isto:

(function ($) {
  $(document).ready(function() {
    // ... aqui de fato vem a implementação
  }
})(jQuery);

Veja que você cria uma função anônima que recebe como argumento o $ e instantaneamente executa essa função passando como parâmetro a jQuery, que a partir de agora passa a ser o $. Existem outras abordagens que a própria jquery recomenda. Leia a documentação ;-)

 

Qualquer coisa, grita!

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por Giovanird
      O script abaixo atualiza a página (centro.php) a cada um minuto e dentro desta página terei uma div que não poderá ser atualizada.
      Tentei colocar esta div como pagina com setInterval de 100 minutos porem ao dar o refresh no centro.php  tudo vai junto.  Será que isto é possivel?

      Desde já meu muito obrigado!
      <script> function atualiza(){ var url = 'centro.php'; $.get(url, function(dataReturn) { $('#centro').html(dataReturn); }); } setInterval("atualiza()",60000); </script>  

    • Por luiz monteiro
      Bom dia. Eu estou tentando encontrar uma maneira de evitar que após o usuário selecionar, se selecionar, uma imagem, essa seja substituída apenas por outra selecionada. Porém quando o usuário cancela a seleção, o input file remove o arquivo se já foi selecionado anteriormente.
      Essa é a estrutura que estou usando HTML
      form action="#" method="post" name="formulario" id="formulario" enctype="multipart/form-data"
      input type="file" name="file_name[]" br input type="file" name="file_name[]" br button enviar /button /form
      JS PURO
      Peguei esse script em um post aqui do stackoverflow e adaptei
      script type="text/javascript"
      let formulario = document.querySelector("#formulario"); formulario.addEventListener("change", (e)=>{ e.preventDefault(); var file = e.target.files[0]; if (e.target.files.length === 1 && e.target.files !== undefined && e.target.files !== null && file.type.match('image.*')) { console.log("if okay"); } else { //preciso entender o que devo fazer aqui para verificar se há arquivo no DOM desse target caso, o usuário cancele a seleção, para evitar que se há um arquivo no DOM esse permaneça. console.log(file); //CASO O USUÁRIO CANSELA A SELEÇÃO, RETORNA undefined } }); /script
      O if está correto, porém o que falta é o que fazer no else. Agradeço desde já.
    • Por ILR master
      Fala pessoal, tudo bem?
       
      Tô tentando fazer um pre-loading, mas não consigo de jeito algum.
      Quero mostrar uma animação enquanto a página é carregada e depois de caregada, esconder a animação e mostrar conteúdo.
       
      Aguém pode me ajudar?
       
      Segue código abaixo
       
       
      <!DOCTYPE html>
      <html lang="pt-br">
      <head>
          <meta charset="utf-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0" />  
          <title>PÁGINA LOAD</title>

      <style type="text/css">
      .loadclass {
          border: 2px solid #f3f3f3; /* Light grey */
          border-top: 4px solid #ffc401; /* Blue */
          border-radius: 50%;
          width: 50px;
          height: 50px;
          animation: spin 2s linear infinite;
      }
      @keyframes spin {
          0% { transform: rotate(0deg); }
          100% { transform: rotate(360deg); }
      }
      .conteudo {
          display:none;
      }
      </style>
      <script>
          function loading(){
              document.getElementsByClassName('loadclass')[0].style.display="none";
              document.getElementsByClassName('conteudo').style.display="block";
          }
      </script>
      </head>
      <body onLoad="loading()">
      <div class="loadclass"></div>
      <div class="conteudo">SEU CONTEUDO AQUI DENTRO!!!</div>
      </body>
      </html>
    • Por ILR master
      Pessoal, pergunta bem simples. Abaixo tenho o seguinte código:
       
      <script>
      function alerta()
      {
        if (window.confirm("Você realmente quer sair?")) {
          window.open("sair.html");
      }
      }
      </script>
       
      Funciona perfeitamente, só que está abrindo em outra janela e quero que abra na mesma janela.
       
      Alguém pode me ajudar?
    • Por Giovanird
      Olá a todos!
      Tenho uma pagina que possui uma DIV onde coloquei uma pagina PHP.
      Uso a função setInterval para atualizar a pagina inclusa dentro da DIV.
      O problema é que ao acessar o site , a DIV só me mostra a pagina inclusa somente quando completo o primeiro minuto.
      Preciso que a pagina inclusa já inicie carregada
       
      Meu código JavaScript e a DIV com a pagina PHP
       
      <script> function atualiza(){ var url = 'direita.php'; $.get(url, function(dataReturn) { $('#direita').html(dataReturn); }); } setInterval("atualiza()",60000); </script> <div> <span id="direita"></span> </div>  
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.