2012-04-02 10 views
1

Ich habe einige Code an das blur() Ereignis gebunden in jQuery:Anruf-Code von Ereignis mit jQuery Bindung

$('input[type="text"]').blur(function() { 
    ... some code ... 
}); 

Gibt es eine Möglichkeit, diese gleichen Code von einer anderen Funktion in mein Javascript aufrufen? Oder muss ich diesen Code von der Ereignisbindung trennen, um ihn wiederzuverwenden?

+0

verkürzt werden könnte, auch wenn Sie die Prozedur der Unschärfe Ereignis zugeordnet nennen könnte direkt, ich denke, es ist schöner eine separate Funktion zu erstellen . –

Antwort

2

Sie können .trigger verwenden, um das Ereignis aufzurufen.

Zum Beispiel:

$('input[type="text"]').trigger('blur'); // this would call the blur event 
              // on all the elements 
+0

Ich bevorzuge diese Syntax; Ich denke, es ist klarer, was genau hinter den Kulissen passiert. – Blazemonger

2

Wenn Sie möchten, um es aufzurufen, rufen Sie einfach blur Methode auf dem Element, das angebracht blur Ereignis hat.

4

Es klingt, als ob Sie ein Stück Code-Formular sowohl den Blur-Event-Handler als auch anderswo aufrufen möchten. Wenn ja, dann der beste Weg, dies zu tun, ist eine separate Funktion zu definieren, und es von beiden Orten nennen

var theCode = function() { 
    ... 
}; 

$('input[type="text"]').blur(function(){ 
    theCode(); 
}); 

// else where 
theCode(); 

Es ist möglich, die Unschärfe Ereignis direkt aus anderen Teilen des Codes zu erhöhen. Dies ist jedoch eine indirekte Methode. Ich finde es viel klarer, wenn Sie den beabsichtigten Code direkt aufrufen.

Hinweis als gdoron zeigte in den Kommentaren aus der ersten Blur Probe

$('input[type="text"]').blur(theCode); 
+0

'$ ('input [type =" text "]'). Blur (funktion() {theCode();});' => '$ ('input [type =" text "]'). Blur (theCode); ' – gdoron

+0

@gdoron danke, wies darauf hin, in der Antwort – JaredPar