Konzentrieren Sie sich nur einmal - Jquery
Hallo Freunde ich habe eine textarea und möchte ich animate()
und css()
Funktionen mit diesem element.
css()
Funktion richtig funktioniert, aber das problem ist focus()
func. Nach dem laden der Seite ist alles in Ordnung,
wenn ich den Fokus auf die textarea-seine Höhe ist die Inkrementierung von 50px, aber wenn ich blur und dann wieder den Fokus auf die textarea dann Höhe Inkrementieren 50px wieder.
Möchte ich nicht verwenden blur()
Funktion.
Meine Frage ist über die Verwendung focus()
Funktion. Ich will focus()
einmal pro Seite zu laden.
<script>
$(document).ready(function(){
$("#sharePost").focus(function(){
$(this).animate({height:"+=50px"});
$(this).css("background-color","#ffccdd");
});
$("#sharePost").blur(function(){
//$(this).animate({height:"-=50px"});
});
});
</script>
Du musst angemeldet sein, um einen Kommentar abzugeben.
Feuer ein Ereignis nur einmal verwenden, können Sie die ein() Funktion, legt einen Ereignis-listener entfernt dann ist es nach dem ersten mal, es wird ausgelöst:
Arbeiten Demo
Können Sie ganz einfach tun dies mit Hilfe jQuery .eine () - Funktion. Dies nur feuert der event-handler nur einmal für das element, dem es verbunden ist.
Würden Sie nicht brauchen, zu verwenden
$(document).ready(function()...
in diesem Fall (es sei denn, dein Skript kommt vor deine #sharePost element). Als ein Beispiel könnte man nur tun:Nach dem ersten
focus
auf das element, wird der handler mit Ihr .animieren und .css wird nie wieder laufen. Sie können von dort aus zu gehen, wenn Sie wollen, ist zu schrumpfen wieder nach unten, wenn Fokus verlässt das element.