No tiene que agregar ningún javascript adicional a lo que ya está incluido con la opción de colapso de bootstraps. En su lugar, simplemente incluya selectores de alternancia de datos y de destino de datos en los elementos de la lista del menú tal como lo hace con el botón de alternancia de la barra de navegación. Entonces, para el elemento del menú Productos, se vería así
<li><a href="#Products" data-toggle="collapse" data-target=".navbar-collapse">Products</a></li>
Luego, necesitaría repetir los selectores de cambio de datos y de destino de datos para cada elemento del menú
¡¡¡EDITAR!!!
Para solucionar problemas de desbordamiento y parpadeo en esta solución, estoy agregando más código que solucionará esto y aún no tengo ningún javascript adicional. Aquí está el nuevo código:
<li><a href="#products" class="hidden-xs">Products</a></li>
<li><a href="#products" class="visible-xs" data-toggle="collapse" data-target=".navbar-collapse">Products</a></li>
Aquí está en el trabajo http://jsfiddle.net/jaketaylor/84mqazgq/
Esto hará que sus selectores de alternancia y de destino sean específicos para el tamaño de la pantalla y eliminará las fallas en el menú más grande. Si alguien todavía tiene problemas con las fallas, hágamelo saber y encontraré una solución. Gracias
EDITAR : En el bootstrap v4.1.3 no pude usar clases visibles / ocultas. En lugar de hidden-xs
usar d-none d-sm-block
y en lugar de visible-xs
usar d-block d-sm-none
.