Descubrí que si hago clic en una de las secciones en la barra de menú, la barra de direcciones del navegador muestra #[object%20Object] . Pero no influyó en scroll-to-section .
Código parcial en la referencia:
<li class="scroll-to-section"><a href="#top" class="active">Home</a></li> <li class="scroll-to-section"><a href="#services">Services</a></li> <li class="scroll-to-section"><a href="#about">About</a></li> <li class="scroll-to-section"><a href="#users">Evaluations</a></li> <li class="scroll-to-section"><a href="#newsletter">Newsletter</a></li>Código JavaScript:
$('.scroll-to-section a[href*=\\#]:not([href=\\#])').on('click', function() { if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) { var target = $(this.hash); target = target.length ? target : $('[name=' + this.hash.slice(1) +']'); if (target.length) { var width = $(window).width(); if(width < 991) { $('.menu-trigger').removeClass('active'); $('.header-area .nav').slideUp(200); } $('html,body').animate({ scrollTop: (target.offset().top) + 1 }, 700); return false; } } }); $(document).ready(function () { $(document).on("scroll", onScroll); //smoothscroll $('.scroll-to-section a[href^="#"]').on('click', function (e) { e.preventDefault(); $(document).off("scroll"); $('.scroll-to-section a').each(function () { $(this).removeClass('active'); }) $(this).addClass('active'); var target = this.hash; menu = target; target = $(this.hash); $('html, body').stop().animate({ scrollTop: (target.offset().top) + 1 }, 500, 'swing', function () { window.location.hash = target; $(document).on("scroll", onScroll); }); }); });Intenté actualizar jQuery, pero no funcionó.
window.location.hash = target;
este es el problema. no puede establecer location.hash en un elemento. Debe ser un a name o una id en el documento. Una cuerda. No es un objeto.
Este problema fue causado por var target = this.hash , puede eliminar esta línea.
target se sobrescribe con un objeto jQuery que contiene el elemento de destino.