Alternative zu .one bzw spezielles Event
Roger
- javascript
Guten Tag,
ich benutze JQUERY und benötige Hilfe:
Ich möchte, dass bei drücken der Enter Taste etwas passiert:
$this.keypress(function(event) {
if (event.keyCode == '13') {}});
Problematisch wird es für mich allerdings, dass ich hierfür die Funktion one benutzen muss:
$this.one('keypress',function(){
// DO anything
})
Wie kann ich jetzt das eine mit dem anderen verbinden, also one ein Event zuweisen, dass nicht bei jedem key sondern nur bei der Enter Taste (Key 13) ausgelöst wird?
Verschachteln kann man nicht.
Ich bedanke mich schon mal für die Hilfe!
Viele Grüße,
Roger
Hi,
Ich möchte, dass bei drücken der Enter Taste etwas passiert:
$this.keypress(function(event) {
if (event.keyCode == '13') {}});
> Problematisch wird es für mich allerdings, dass ich hierfür die Funktion one benutzen muss:
Warum \*musst\* du?
> Wie kann ich jetzt das eine mit dem anderen verbinden, also one ein Event zuweisen, dass nicht bei jedem key sondern nur bei der Enter Taste (Key 13) ausgelöst wird?
Der Event „Taste gedrückt“ findet statt unabhängig davon, um welche Taste es sich handelt - das kannst du immer erst anschließend in der Verarbeitung des Events feststellen.
Die JQuery-Doku sagt mit bzgl. one;
“This method is identical to .bind(), except that the handler is unbound after its first invocation.”
Du willst also nur auf den ersten Druck der Taste Enter reagieren, auf alle weiteren nicht mehr?
Dann nutze einen „normalen“ Event (bind), und entferne diesen (erst) dann vom Element, wenn wirklich der Tastencode 13 auftrat.
MfG ChrisB
--
“Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
Hi,
Ich möchte, dass bei drücken der Enter Taste etwas passiert:
$this.keypress(function(event) {
if (event.keyCode == '13') {}});
> > Problematisch wird es für mich allerdings, dass ich hierfür die Funktion one benutzen muss:
>
> Warum \*musst\* du?
>
> > Wie kann ich jetzt das eine mit dem anderen verbinden, also one ein Event zuweisen, dass nicht bei jedem key sondern nur bei der Enter Taste (Key 13) ausgelöst wird?
>
> Der Event „Taste gedrückt“ findet statt unabhängig davon, um welche Taste es sich handelt - das kannst du immer erst anschließend in der Verarbeitung des Events feststellen.
>
> Die JQuery-Doku sagt mit bzgl. one;
> “This method is identical to .bind(), except that the handler is unbound after its first invocation.”
>
> Du willst also nur auf den ersten Druck der Taste Enter reagieren, auf alle weiteren nicht mehr?
>
> Dann nutze einen „normalen“ Event (bind), und entferne diesen (erst) dann vom Element, wenn wirklich der Tastencode 13 auftrat.
>
> MfG ChrisB
>
>
Mhh. Danke für deine Antwort. Ich glaube aber, just in dem Moment als ich hier gepostet habe, die Lösung gefunden zu haben.
~~~javascript
$this.one('pressEnter',function(){
//DO anything
});
$this.keypress(function(event) {
if (event.keyCode == '13') {
$this.trigger('pressEnter');
}});
Aber danke auch für deine Antwort. Ich werde mir das ganze nochmal anschauen.
Man will ja dazulernen. :)
Gruß