Your link lies inside the container that handles the onclick event. You, by calling e.preventDefault(); disable the standard event handling and thus prevent the event from spreading further into the container.
Remove this line and it will work.
$(document).ready(function() { $('.dropdown').click(function(e) { $(this).find('.lang-menu').toggleClass('open'); $($(e.target).find('.down-caret').toggleClass('open-caret')); // e.preventDefault(); e.stopPropagation(); }); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="dropdown lang"> <a class="langswitch" href="/">袪校小<span class="down-caret"></span></a> <ul class="lang-menu"> <li><a href="javascript:alert('Go!')">校袣袪</a></li> </ul> </div>