2016-04-22 5 views
0

Ich habe eine feste Navigation, wo die nav Elemente angeklickt werden und Smooth auf Abschnitte auf der Seite, und fügen Sie eine aktive Klasse auf den MenüpunktjQuery, throw new Error („Syntaxfehler, nicht erkannte Äußerung:“ + a

.

es funktioniert perfekt, wenn sie lokal auf localhost zu entwickeln, aber jetzt, dass ich die Seite lebt sie verschoben haben gibt den Fehler:

Uncaught Error: Syntax error, unrecognized expression: /#about-section 

und

throw new Error("Syntax error, unrecognized expression: " + a) 

die Seite ist auf website to test Der Code, der es auf localhost gemacht Arbeit ist:

jQuery(document).ready(function($) { 
 
    var sections = $('section'), 
 
    nav = $('nav'), 
 
    nav_height = nav.outerHeight(); 
 

 
    $(window).on('scroll', function() { 
 
    var cur_pos = $(this).scrollTop(); 
 
    
 
    sections.each(function() { 
 
     var top = $(this).offset().top - nav_height, 
 
     bottom = top + $(this).outerHeight(); 
 

 
     if (cur_pos >= top && cur_pos <= bottom) { 
 
     nav.find('a').removeClass('active'); 
 
     sections.removeClass('active'); 
 

 
     $(this).addClass('active'); 
 
     nav.find('a[href="#' + $(this).attr('id') + '"]').addClass('active'); 
 
     } 
 
    }); 
 
    }); 
 

 
    nav.find('a').on('click', function() { 
 
    var $el = $(this), 
 
     id = $el.attr('href'); 
 

 
    $('html, body').animate({ 
 
     scrollTop: $(id).offset().top - nav_height 
 
    }, 500); 
 

 
    return false; 
 
    }); 
 
});
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> 
 
    <ul id="menu-not-landing-main-menu" class="nav navbar-nav navbar-right"> 
 
    <li id="menu-item-442" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item current_page_item menu-item-442 active active"> 
 
     <a href="/#about-section">About</a> 
 
    </li> 
 
    <li id="menu-item-443" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item current_page_item menu-item-443 active active"> 
 
     <a href="/#speakers-section">Speakers</a> 
 
    </li> 
 
    <li id="menu-item-444" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item current_page_item menu-item-444 active active"> 
 
     <a href="/#mini-zeminars-section">Mini Zeminars</a> 
 
    </li> 
 
    </ul> 
 
</div>

Kann mir jemand bitte helfen?

Antwort

1

Entfernen slash / aus dem alle Anker-Tag href, wie

<li id="menu-item-442" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item current_page_item menu-item-442 active active"> 
     <a href="#about-section">About</a> 
    </li> 
    <li id="menu-item-443" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item current_page_item menu-item-443 active active"> 
     <a href="#speakers-section">Speakers</a> 
    </li> 
    <li id="menu-item-444" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item current_page_item menu-item-444 active active"> 
     <a href="#mini-zeminars-section">Mini Zeminars</a> 
    </li> 

Sie werden gut sein, dann zu gehen;)

+0

perfekt danke :) –

+0

@tuschar, Aber was ist, wenn ich Schrägstrich vor dem Pfad brauche? – divy3993

0

id kann nicht mit /, beginnen, so dass es in Scheiben schneiden out:

var **target** = *id.slice(1)*; 

dann,

scrollTop: $(**target**).offset().top - nav_height 
Verwandte Themen