⬅ Zurück zur Übersicht

Fire on enter

david am Samstag, 20.04.2019 - 16:21:20
⬅ Zurück zur Übersicht

Kleines Javascript / jQuery – Snippet, das eine Aktion auslöst, sobald in einem Feld der Enter – Button betätigt wird.

1
2
3
$("[fire-on-enter]").not('.fire-on-enter-bound').on("keypress", function(e) {
if(e.which == 10 || e.which == 13) eval($(this).attr("fire-on-enter"));
}).addClass("fire-on-enter-bound");

Verwendet wird das Skript beispielsweise so:

1
<input type="text" fire-on-enter="alert();" />

Was hat es mir fire-on-enter-bound auf sich? Ich verwende regelmäßig Ajax zum dynamischen Nachladen von Inhalten und Controls und feuere danach jedes mal das Javascript, um bei neu geladenen Controls den Keypress zu binden. Das führt aber dazu, dass an Steuerelemente, an welche der Kepyress bereits gebunden ist, erneut ein Keypress gebunden wird, was dazu führt dass mit ein mal Enter drücken zwei mal die gebundenen Funktion gefeuert wird. Deswegen die fire-on-enter-bound klasse, welche an gebundene Controls angehängt wird und dazu führt, dass das Event nicht erneut gebunden wird.

Kommentar schreiben

Kommentare