jquery - 使用 Jquery 中的 if 语句禁用单击时的正常链接行为?

标签 jquery html navigation hyperlink conditional-statements

我一整天都在为此绞尽脑汁,尝试了我能想到的一切,但没有任何收获。我不是 Jquery 专家,所以我希望这里有人可以帮助我。我试图用伪代码(概念)做的事情似乎很实用并且易于实现,但显然不是那么=D

我拥有的是一个导航侧边栏,其中一些li内有子菜单,并且每个li的顶部有一个链接。

当单击顶级链接时,我希望 jquery 检查该链接是否有同级 ul。如果是这样,该链接不会像链接一样起作用,而是会向下滑动同级子导航。如果没有,该链接应该可以正常运行。

这是我目前所处的位置,我做错了什么?

$('ul.navigation li a').not('ul.navigation li ul li a').click(function (){
    if($(this).parent().contains('ul')){
        $('ul.navigation li ul').slideUp();
        $(this).siblings('ul').slideDown();
        return false;
    }
    else{
        alert('Link Clicked')
        // Maybe do some more stuff in here...
    }
});

有什么想法吗?

最佳答案

对于“我做错了什么?”部分...没有 .contains()方法:)有一个 $.contains() 这是不同的,但不是你想要的......你想检查 .length property 。如果没有您的标记,我不能 100% 确定,但如果 <a><ul>是 sibling ,我相信这就是您所追求的:

$('ul.navigation > li > a').click(function (){
    if($(this).siblings('ul').length){
        $('ul.navigation > li > ul').slideUp();
        $(this).siblings('ul').slideDown();
        return false;
    } else{
        alert('Link Clicked');
        // Maybe do some more stuff in here...
    }
});

You can see a working demo here :)

关于jquery - 使用 Jquery 中的 if 语句禁用单击时的正常链接行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2889118/

相关文章:

javascript - 如何使用 DOM 可用的所有输出来迭代 JavaScript for 循环

java - 单击抽屉导航项目开始新 Activity

javascript - 不使用 .text() 在 div 上写入文本

java - j2me中的HTML文本提取

html - 非标准形状的输入字段

html - 动画不会在第一次点击时发生?

dart - 如何从另一个页面在底部导航栏中导航?

xamarin - 如何在 Xamarin.forms 中立即获取 GPS 位置?

javascript - Firefox 在 input.attr ("type"、 "number"上触发更改事件

javascript - 无法在文本字段中提供 "dot"输入