2013-07-29 13 views
7

Ich möchte ein Skript beim ersten Laden der Seite ausführen (für den Standardwert von select-Element), und dann bei jeder Änderung von SELECT-Element. Ist es möglich, es in einer Zeile zu tun, oder muss ich die Funktion für diese Ereignisse duplizieren?Kann ich die jQuery-Funktion ausführen und beim Laden und beim Ändern?

Ich weiß, dass ich die nächste Struktur verwenden kann:

$('#element').on('keyup keypress blur change', function() { 
    ... 
}); 

Aber es scheint nicht, Ladeereignis zu unterstützen.

Irgendwelche Ideen?

Antwort

9

Wenn ich verstehe, was Sie meinen, lösen nur eines dieser Ereignisse:

$('#element').on('keyup keypress blur change', function() { 
    ... 
}).triggerHandler('keyup'); //or trigger('keyup') or keyup() which then let event propagate 
+0

Es ist definitiv der einfachste Weg von vorgeschlagen, also akzeptiere ich diese Antwort. – Braggae

5

für Wechselelement verwenden, um Ihre:

$('#element').on('change', function() { 
    ... 
}); 

und gleiche Funktion auf Last Erstbezug Struktur zu verwenden, wie:

jQuery(window).on("load", function(){ 

    $('#element').change(); 

}); 

die gleiche Funktion nennen

3

Anstatt anonyme Funktionen zu verwenden (sie direkt dort zu definieren, wo sie verwendet werden), könnten Sie einfach eine reguläre Funktion erstellen und jQuery anweisen, sie aufzurufen, wenn diese Ereignisse eintreten.

$(document).ready(myFunction); 
$('#element').on('keyup keypress blur change', myFunction); 

function myFunction() { 
    // Do something here... 
} 
Verwandte Themen