2013-07-29 10 views
7

Chcę uruchomić skrypt przy ładowaniu strony po raz pierwszy (dla domyślnej wartości elementu select), a następnie przy każdej zmianie elementu select. Czy można to zrobić w jednym wierszu, czy też muszę zduplikować funkcję dla tych zdarzeń?Czy mogę uruchomić funkcję jQuery i przy obciążeniu i przy zmianie?

wiem, że mogę wykorzystać następną strukturę:

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

Ale nie wydaje się, aby obsługiwać zdarzenie obciążenia.

Wszelkie pomysły?

Odpowiedz

9

Jeśli rozumiem co masz na myśli, po prostu wywołać jedną z następujących zdarzeń:

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

Jest to zdecydowanie najprostszy sposób sugerowany, więc akceptuję tę odpowiedź. – Braggae

5

dla elementu zmiany używać swojego:

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

i używać tej samej funkcji na obciążenia po raz pierwszy zastosowania struktury jak:

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

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

}); 

wywołać tę samą funkcję

3

Zamiast używać anonimowych funkcji (definiując je dokładnie tam, gdzie będą używane), możesz po prostu utworzyć zwykłą funkcję i poprosić jQuery, aby wywołała je, gdy te zdarzenia się zdarzą.

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

function myFunction() { 
    // Do something here... 
} 
Powiązane problemy