Después de depurar tu código para poderlo usar (debes de aprender a usar jsfiddle) te falta añadir e.stopPropagation() para que el evento click no se propague hasta el li padre y ejecute de nuevo el evento click (sin ese código que te digo es como si se hiciesen dos clicks uno en el li hijo y después al li padre)
Demo -
Explicación detallada
Saludos