2016-08-09 22 views
1

Ich möchte mehr zeigen, wenn Sie auf die div ShowMore klicken, aber wenn ich es tun, zeigen alle Abschnitt mehr und nicht das Element, wo ich nur klicken.Klicken Sie und zeigen Sie mehr Element

Zusammenfassend, wenn Sie auf das div .showMore klicken, erhöht div .panel die Höhe, um versteckten Text anzuzeigen. Aber wenn ich auf den .showMore mit der Klasse jedes div klicken .panel auch animieren, während ich bin nur die angeklickt div belebte Höhe

Ich denke, das ist eine kleine Codezeile, die ich vermisse

JS

$(".showMore").click(function(){ 
if ($(".panel").height() == 100) { 
    $(this).css({transform:"rotate(90deg)"}); 
$(".panel").animate({height: "250px"}); 
} 
else if ($(".panel").height() == 250) { 
    $(this).css({transform:"rotate(0deg)"}); 
    $(".panel").animate({height: "100px"}); 
} 
}); 

Full code here: Codepen

+0

sollten Sie ID verwenden, um festzustellen, welche Platte zu erweitern – Weedoze

+0

ich nicht Klasse verwenden kann? – Pierreszwk

+0

Wenn Sie eine Klasse verwenden, wird jedes Vorkommen Ihrer Klasse erweitert. Wenn Sie eine bestimmte ID verwenden, wird nur diese erweitert – Weedoze

Antwort

0

Suche Element mit Klasse panel das Element geklickt enthält:

$(".showMore").click(function(){ 

    var panel = $(this).closest(".panel"); 

    if (panel.height() == 100) { 
    $(this).css({transform:"rotate(90deg)"}); 
    panel.animate({height: "250px"}); 
    } 
    else if (panel.height() == 250) { 
    $(this).css({transform:"rotate(0deg)"}); 
    panel.animate({height: "100px"}); 
    } 
}); 

Hinweis: loszuwerden doppelten id s in Ihrem HTML.

+0

Wenn Sie "panel.animate" schreiben, wissen wir, dass wir über die Klasse ".panel" sprechen? – Pierreszwk

+0

@Pierreszwk - Variable 'panel' im obigen Code ist ein jQuery-Objekt, das das DOM-Element mit der Klasse' panel' umschließt. – Igor

0

Sie müssen nur Eltern durch den Zugriff auf Elemente seiner Verwendung von $(this) ein bisschen mehr machen.

//alert('ok'); 
    $(".showMore").click(function(){ 
    if ($(".panel").height() == 100) { 
     $(this).css({transform:"rotate(90deg)"}); 
    $(this).parent(".panel").animate({height: "250px"}); 
    } 
    else if ($(this > ".panel").height() == 250) { 
     $(this).css({transform:"rotate(0deg)"}); 
     $(this).parent(".panel").animate({height: "100px"}); 
    } 
+0

Ich lese gerade '.parent()' Methode auf jQuery! Vielen Dank;) – Pierreszwk

+0

Kein Problem. Wenn Sie der Meinung sind, dass diese Frage beantwortet wurde, markieren Sie diese bitte als akzeptierte Antwort. :) – spoq

0
$(".showMore").click(function(){ 
    var height=$(this).parent().height(); 
    if (height == 100) { 
     $(this).css({transform:"rotate(90deg)"}); 
    $(this).parent().animate({height: "250px"}); 
    } 
    else if (height == 250) { 
     $(this).css({transform:"rotate(0deg)"}); 
     $(this).parent().animate({height: "100px"}); 
    } 
}); 

http://codepen.io/beshoysemsem/pen/xOQmRQ