2017-10-25 1 views
-1

ich folgenden Code verwenden, zu verstecken und AnzeigeformjQuery Funktion ruft wiederholt

$(document).ready(function() { 
    $("#form_before_launch").click(function(){ 
     $(this).animate({height:"300px" ,width:"400px"}); 
     $(this).children("p").animate({fontSize:"35px"}); 
     $("#form").delay(500).fadeIn(); 
    }) 

    $("#close").click(function(){ 
     $(this).animate({height:"0px" ,width:"0px"}); 
    }) 
}); 

folgende Code ist für form_before_launch arbeiten, aber sobald ich div Element klicken ‚close‘ id wird Funktion aufgerufen und danach wird #form_before_launch erneut aufgerufen.

+2

Ist das close-Element innerhalb des Elements form_before_launch? – Taplar

+0

@Taplar: ja es ist in demselben Element –

+0

ja, das ist, wie klicken Ereignisse funktionieren –

Antwort

-2

Versuchen Sie, "e" an das Close-Click-Ereignis weiterzuleiten und rufen Sie dann e.stopPropagation() an, damit das Ereignis nicht vom verkapselnden Element form_before_launch verarbeitet wird.

-1

Wenn das Element innerhalb der form_before_launch ist, wird das Ereignis natürlich auf beide Handler propagiert.

$("#close").click(function(){ 
    $(this).animate({height:"0px" ,width:"0px"}); 
    return false; 
}) 
+0

@Orpheus eh, ich denke, Sie sind falsch. zumindest für jQuery-gebundene Ereignisse. Dokumente finden –

+0

@Orpheus, der falsch zurückgibt, verhindert preventDefault und stopPropagation. – Taplar

+0

http://api.jquery.com/on/ * "Die Rückgabe von false aus einem Event-Handler wird automatisch' event.stopPropagation() 'und' event.preventDefault() '' aufrufen. "* –