为什么子链接不起作用?

时间:2013-05-13 08:49:38

标签: jquery html css

我在slideDown菜单中遇到链接问题。

链接是不可点击的原因?

您可以在此处查看:JSFiddle

我的jQuery代码是:

$('.links').hide();
$('.header a').click(function(e) {
    $(this).next('.links').slideToggle('normal');
    e.preventDefault();
});

3 个答案:

答案 0 :(得分:1)

删除e.preventDefault()会阻止click()

的默认操作
$('.header a').click(function(e) {
            $(this).next('.links').slideToggle('normal');
            //e.preventDefault();
        });

<强> Demo Here

答案 1 :(得分:1)

您的选择器.header a会影响您不想要的.header中包含的所有锚点。只有在点击toggle()的直接子项的锚点时,您才需要.header

$('.header > a').click(function(e) {
    e.preventDefault();
    $(this).next('.links').slideToggle('normal');
});

答案 2 :(得分:0)

您使用e.preventDefault();停止将要发生的默认操作,即HREF将页面移动到新位置。如果您删除e.preventDefault(),您的链接将再次变为“有效”。

更新代码

$('.header a').click(function(e) {
    $(this).next('.links').slideToggle('normal');
});

来自jQuery文档:http://api.jquery.com/event.preventDefault/

e.preventDefault() - 如果调用此方法,则不会触发事件的默认操作。例如,单击的锚点不会将浏览器带到新的URL。