Jump to content
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?

Share this post


Link to post
Share on other 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!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Renan Leite
      Fala pessoal, Estou utilizando grunt + babel para compilar meu código, acontece que minhas pastas estão organizadas da seguinte maneira.
      - pasta1 - amd -src - arquivo.js - pasta2 - amd -src - arquivo.js - pasta3 -subpasta3 - amd - src -arquivo.js E eu só consigo usar o babel de uma forma muito específico, por exemplo:
      grunt.initConfig({ babel: { options: { sourceMap: false, presets: ['env'] }, dist: { files: [{ expand: true, cwd: './pasta1/amd/src', // aqui so especifico a pasta1 src: ['*.js'], dest: '.pasta1/amd/babel/' // aqui so especifico a pasta1 }] } } Eu queria que ele rodasse em todas as pastas amd/src e gerasse dentro da propria pasta src/ os arquivos compilados pelo babel, já tentei o seguinte:
      grunt.initConfig({ babel: { options: { sourceMap: false, presets: ['env'] }, dist: { files: [{ expand: true, cwd: '**/amd/src', src: ['*.js'], dest: '**/amd/babel/' }] } } CWD: Não sei porque nao funciona, a ideia era pegar todas as pastas que contem as pastas amd/src e tornar isso a base
      DEST: nessa parte eu não faço ideia de como deixar o dest (pasta babel/ gerada) exatamente dentro da pasta que está o src, por exemplo... dentro de pasta1/src criar a pasta babel/ com todos arquivos .js compilados da pasta1, dentro de pasta2/src criar a pasta babel/ com todos arquivos .js compilados da pasta2
    • By thgsousa312
      uma função que recebe uma frase e uma palavra antiga e uma palavra nova. A função deve retornar uma string contendo a frase original, mas com a última ocorrência da palavra antiga substituída pela palavra nova. A entrada e saída de dados deve ser feita no programa principal. Exemplo:  
      Frase: “Quem parte e reparte fica com a maior parte”
      Palavra antiga: “parte”  Palavra nova: “parcela”
      Resultado a ser impresso no programa principal: “Quem parte e reparte fica com a maior parcela”
       
      function trocarNome(){
              
          var frase = document.getElementById("frase").value;
          var strAntiga = document.getElementById("strAntiga").value;
          var strNova = document.getElementById("strNova").value;
          //frase = frase.split(" ");
          var a = frase.lastIndexOf(strAntiga);
          var fras2 = frase.lastIndexOf(strAntiga).replace(strAntiga,strNova);
          document.getElementById("demo").innerHTML = "Certo";
      }
    • By prometheusz
      Amigos bom dia, sou novo aqui
      Tenho a seguinte tabela  :
       
       
      gostaria de capturar os ids quando fosse clicado no botão pegar valor do codigo porem do jeito que fiz ele só captura o 88 nao importa qual mlinha eu clique ele so captura o numero 88
       
      codigo:

       
      <script> $(function () { $(document).on('click', '.btn-danger', function (e) { e.preventDefault; var codigo =document.getElementsByTagName('th')[5].innerHTML; alert(codigo) }); }); </script> <?php while ($dado = ibase_fetch_object($consulta_retorno)){ ?> <tr> <th data-title="ID"><?php echo ($dado->ID)?> </th> <td data-title="Nome"><?php echo utf8_encode($dado->NOME)?></td> <td data-title="DataCompra"><?php echo date("d/m/Y", strtotime($dado->DATACOMPRA))?></td> <td data-title="Email"><?php echo utf8_encode($dado->EMAIL)?></td> <td> <button class="btn-danger">Pegar Valor do Código</button></td> </tr> <?php }?>  
       
    • By VCastilho
      Bom Dia
      Estou fazendo uma pagina do meu site via Elementor, e começou a aparecer alguns erros no console que não consigo localizar a raiz.
      Inclusive a função de Carrossel de Imagens não está funcionando, esta inserido na Div porém não funciona, poderia me ajudar?
      Segue o link referente ao site:
       
    • By Guss
      A programadora Cafiaspirina Cruz deseja que todos os elementos <h2> de sua página ganhassem a classe "titulo", para que depois a fonte dos <h2> pudesse ser modificada por um CSS,  deixando-os com um destaque específico. Escreva abaixo um código em Javascript para que todos os <h2> da página ganhem a classe "titulo" de uma única vez?
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.