2

我对 slideDown 菜单中的链接有疑问。

链接不能点击是什么原因?

你可以在这里看到它:JSFiddle

我的 jQuery 代码是:

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

3 回答 3

1

删除e.preventDefault()它将阻止默认操作,即click()

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

在这里演示

于 2013-05-13T08:51:22.503 回答
1

您的选择器将影响包含在您不想要.header a的所有锚点。.header您只想toggle()在单击作为直接子级的锚点时.header

$('.header > a').click(function(e) {
    e.preventDefault();
    $(this).next('.links').slideToggle('normal');
});
于 2013-05-13T08:54:11.643 回答
0

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

更新代码

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

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

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

于 2013-05-13T08:52:42.160 回答