2016-09-28 2 views
1

Hallo Leute, ich habe ein Menü. Ich möchte jedem übergeordneten Menü eine Toogle-Animation hinzufügen. aber momentan steckte ich fest, weil wenn ich auf das Elternmenü klicke. Alle übergeordneten Menüs zeigen ihr untergeordnetes Menü an. ich denke, ich brauche eine jquery jede Funktion, aber ich weiß nicht, wie mit meinem Fall zu implementieren. herer mein Codejquery jede Funktion für Menü

$(".menu-item-has-children").prepend("<i></i>"); 
$(".menu-item-has-children").find("i").addClass("fa fa-plus-circle toogle-icon"); 
$(".toogle-icon").click(function(){ 
    $(".sub-menu").slideToggle(); 
}); 

herer jsfiddle https://jsfiddle.net/Lypj8tov/1/

Antwort

2

Versuchen:

$(".toogle-icon").click(function(){ 
    $(this).parent('.menu-item-has-children').find(".sub-menu").slideToggle(); 
}); 

Auch Sie können das Ganze vereinfachen:

$('<i class="fa fa-plus-circle toogle-icon"></i>') 
    .click(function(){ 
    $(this).parent().find(".sub-menu").slideToggle(); 
    }) 
    .prependTo(".menu-item-has-children"); 

prüfen https://fiddle.jshell.net/ermakovnikolay/q5z4b64u/

0
$(".toogle-icon").click(function(){ 
    $(this).closest('.menu-item-has-children').find(".sub-menu").slideToggle(); 
}); 

@Nikolay Ermakov danke Mann, warum löschen Sie Ihre Antwort? Ist es ein Fehler?

+0

Ich habe es zurück)) –

+0

krank Zeichen Ihr Beitrag als Antwort Geck – antonscie

+0

Danke, Mann. Sehen Sie sich ein paar Verbesserungen an. –

1

Sie müssen das relative Element auf die angeklickte Instanz verweisen. Mit this:

$(".toogle-icon").click(function(){ 
    $(this).siblings('.sub-menu').slideToggle(); 
}); 

Fiddle Demo

0

Lösung:

$(".toogle-icon").click(function(){ 
    $(this).parent().find(".sub-menu").slideToggle(); 
});