我一整天都在为此绞尽脑汁,尝试了我能想到的一切,但没有任何收获。我不是 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...
}
});
关于jquery - 使用 Jquery 中的 if 语句禁用单击时的正常链接行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2889118/