javascript - 防止 href 链接 jQuery

标签 javascript jquery href

我正在制作一个菜单,在这个菜单中我想要“滑动切换”一些选项卡(菜单项)的选项。 因此,我有一个“中学”选项卡,当用户单击该选项卡时,他/她将“显示”一些其他选项卡。

唯一的问题是菜单是自动生成的,并且“中学”有一个我无法删除的 href 链接,因为用户也需要能够访问该链接。

经过一些研究,我想出了这个:

$('#menu li a, #menu li').click(function() {
        $(this).find("ul").slideToggle("slow");
        switch( $('#menu ul.menu li ul').css('display') ){
            case "none":
                return false;
            break;
            case "list-item":
                return true;
            break;
        };

});

但是当用户现在单击链接打开其他选项卡时,脚本不会“滑动切换”选项卡。 我也尝试过event.preventDefault();该方法也不起作用,因为链接需要随后处于事件状态。而且我还没有找到 PreventDefault 的计数器函数..

When a person clicks on "Information" it needs to show some more tabs.因此,当用户单击该选项卡时,它将打开更多选项卡: So when the user has clicked on the tab it will open more tabs.

因此,当有人点击“信息”时,它会向下滑动其他一些选项卡,而当其他选项卡向下时,需要再次单击“信息”链接才能转到“信息”页面。

因此,我正在寻找一种方法,能够在不转到链接的情况下单击链接,而是“滑动切换”选项卡,并且当选项卡“显示”时,链接需要再次处于事件状态。

编辑:我忘记指定此页面是移动页面,因此鼠标悬停和悬停将不起作用...

已解决 这段代码解决了我的问题:

$('#menu ul.menu li.expanded').each(function(i){
switch(i)
{
case 0:
    $(this).addClass("open");  
break;
case 1:
    $(this).addClass("open");  
break;
case 2:
    $(this).addClass("open");  
break;
case 3:
    $(this).addClass("open");  
break;
case 4:
    $(this).addClass("open");  
break;
}

$('#menu li').click(function() {
    if( $(this).find("ul").css('display') == "none" ){
        $('#menu li ul.menu').slideUp("fast");
    }
    $(this).find("ul").slideDown("slow");
});
$('#menu li.open a').on('click', function(e) {
    var tabs = $(this).parent().find('ul');
    if( tabs.css('display') == "none") {
        e.preventDefault();
        $('#menu li ul.menu').slideUp("fast");
        tabs.slideDown("slow");
    }
});

感谢您的帮助!

最佳答案

要取消 href,如果稍后需要 href 属性,您可以指定一些事件,单击,悬停...,并且要重定向,您可以使用 window.location = "otherstuff.html"

关于javascript - 防止 href 链接 jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14822090/

相关文章:

javascript - 是否可以将生成的 php 变量存储到 localStorage 中?

javascript - Zepto 的 $.post 没有错误处理程序

javascript - 如何在屏幕上保持弹出模式的同时停止导航?

javascript - 有什么理由不使用 src ="//domain.com/file.js",它是动态协议(protocol)?

php - HREF IP 地址

javascript - 使用ajax响应显示多个图像

javascript - 顶部滚动条不可见

javascript - Jquery 选择下一个 eq(i+1) 作为按下按钮时的动画

javascript - 如何在 typescript 或JavaScript中连接子数组?

jquery - html/css 响应式网格,可正确调整大小和填充宽度