jQuery:查找并单击

jQuery:查找并单击,jquery,Jquery,我有一个保险单 同样的方法不适用于单击: $(function(){ $("#menu ul li").click(function(event) { event.preventDefault(); $(this).find('ul').fadeIn() }); }) 当我单击fadeIn一个子菜单时,我必须在其他子菜单之前fadeIn。怎么做?我猜你想要这样的东西 $("#menu ul li").hover(function(event) {

我有一个保险单

同样的方法不适用于单击:

$(function(){
    $("#menu ul li").click(function(event) {
        event.preventDefault();
        $(this).find('ul').fadeIn()
    });
})

当我单击fadeIn一个子菜单时,我必须在其他子菜单之前fadeIn。怎么做?

我猜你想要这样的东西

$("#menu ul li").hover(function(event) {
        $(this).find("ul").fadeIn("slow");
    },
    function(event) {
        $(this).find("ul").fadeOut("slow");
});
编辑我想我明白了:

$(document).ready(function () {
    $("#menu > ul > li").click(function(event) {
        var $this = $(this);
        if ( $this.find("ul").length && event.target.href/*.split('/').pop()*/ == $('> a', this).attr('href') ) {
            event.preventDefault();
            $this.siblings().find("ul").fadeOut("slow");
            $this.find("ul").fadeIn("slow");
        }
    });
});
&&event.target.href.split'/'.pop==$'>a',此.attr'href'用于避免禁用默认功能打开子菜单中的链接


如果子链接与memu链接完全相同,则子链接将无法工作。您可以将http://aaa.com/替换为http://www.aaa.com/ 在菜单或子菜单中,但不是同时在这两个菜单中,您没有指定要使用jQuery。由于$没有与jQuery连接,因此它返回null。在ChooseFramework下,为onLoad选择jQuery的一个版本,您的代码就可以工作了


不过,您可能希望了解roselan提出的功能改进建议。

您已经引用了两次相同的代码,在下面,我有一个jQuery,它可以在hover下正常工作:在同一个下使用不同的缩进,但不能在click下工作:。它在这里工作这是不完整的,您引用了相同的代码两次都是click事件请再次检查您的问题请注意,mootools是您的JSFIDLE中选择的库,不是jQuery当您选择jQuery作为jsFiddle中的库时,效果非常好。对不起,我没有解释清楚。我对悬停没有问题。问题是:如何点击并获得子菜单我想我理解你想要什么。检查我编辑的答案,然后点击。单击包含子菜单的菜单时,如果显示其他子菜单,则会隐藏这些子菜单,并显示该子菜单。如果单击没有子菜单的菜单,则会打开链接。谢谢您的回答。你的小提琴很好用。我理解,我认为你隐藏其他子菜单的方式很棒。但我对没有子菜单及其链接的菜单有问题:1-它在小提琴中工作,但当我复制粘贴到文件中时,它不工作:我做了很多次,但我没有发现问题。由于您的脚本位于页眉中,它尝试将单击事件绑定到不存在的元素,因为菜单稍后在页面正文中创建。尝试添加$document.readyfunction{*\u CODE\u HERE\u*};围绕代码。编辑:哦,好吧,在我的回复中添加了它;你说得对。对不起,我的错误很愚蠢。正如你所看到的,我只是在学习。现在它可以在电脑、iPad上正常工作,但在iPhone上却不行。为什么?
$("#menu ul li").hover(function(event) {
        $(this).find("ul").fadeIn("slow");
    },
    function(event) {
        $(this).find("ul").fadeOut("slow");
});
$(document).ready(function () {
    $("#menu > ul > li").click(function(event) {
        var $this = $(this);
        if ( $this.find("ul").length && event.target.href/*.split('/').pop()*/ == $('> a', this).attr('href') ) {
            event.preventDefault();
            $this.siblings().find("ul").fadeOut("slow");
            $this.find("ul").fadeIn("slow");
        }
    });
});