Wenn eine Person zu meiner Seite gegangen ist, möchte ich, dass jQuery ausgeführt wird. Wenn sie auf eine Schaltfläche auf der Seite klicken, wird der gleiche jQuery-Code ausgeführt. Muss ich dafür separate Funktionen erstellen? Eine, die lädt, wenn die Person auf die Seite kommt und dann die Klick-Funktion, wenn jemand auf die Schaltfläche klickt? Oder um Code nicht duplizieren zu müssen, kann alles in einer Funktion sein?Jquery wird ausgeführt, wenn die Seite geladen wird und wenn die Schaltfläche geklickt wird
Antwort
Sie können die Funktion für beide wiederverwenden:
$(function() {
// declare the function
function myReusableFunction() {
// do something extraordinary
}
// call it on page load
myReusableFunction();
// assign to handler
$('button').click(myReusableFunction);
});
Beachten Sie, dass der Wert von this
und der Parameter (falls vorhanden) wird anders sein.
Wenn das ein Problem ist, können Sie es direkt aufrufen, indem Sie einen click
-Trigger verketten.
$(function() {
// assign to handler AND call it
$('button').click(function() {
// do something extraordinary
}).click();
});
EDIT: Wenn es mehr als einen button
ist, dass es zugeordnet ist, löst der .click()
für alle von ihnen.
Wenn dies nicht das, was gewünscht ist, können Sie es ändern:
$(function() {
// assign to handler AND call it
$('button').click(function() {
// do something extraordinary
}).eq(0).click();
});
... es auf dem ersten nur auszulösen.
Oder diese:
$(function() {
// assign to handler AND call it
$('button').click(function() {
// do something extraordinary
}).triggerHandler('click');
});
... die nur Feuer auf das erste Element, sondern auch ein paar andere Unterschiede hat. Weitere Informationen finden Sie in der Dokumentation für triggerHandler.
Hier ist ein Beispiel, das ein Ereignis bindet und es zusätzlich auslöst.
$(function() {
$('#yourButton').click(function(){
alert('Yay');
}).click();
});
Edit: aufgeräumt meine Erklärung und schreckliche Grammatik ...
$(function() {
$("#myButton").click(function() {
//your code
alert("exeuted"); //on click button alerts
}).click(); //simulate click to execute onload
});
Online-Demo hier: http://jsfiddle.net/nMPMt/
- 1. hinzufügen Eingabefeld, wenn die Schaltfläche geklickt wird
- 2. GridView wird nicht angezeigt, wenn auf die Schaltfläche geklickt wird
- 3. Schaltfläche wird auf falsche Seite umgeleitet, wenn geklickt wird [PHP]
- 4. Aktivität wird nicht geöffnet, wenn die Schaltfläche geklickt wird [ANDROID]
- 5. Jedes Mal, wenn die Schaltfläche geklickt wird, wird MVVM verwendet.
- 6. onDeviceReady() wird nicht aufgerufen, wenn die Seite neu geladen wird?
- 7. Wann wird die Funktion ausgeführt, wenn jQuery .each() verwendet wird?
- 8. Warum wird die jqgrid-Formatierungsoption "onClick" automatisch geladen und nicht, wenn auf die Zelle geklickt wird?
- 9. Wie behalte ich Formulardaten, wenn die Schaltfläche Zurück geklickt wird
- 10. Wie ein Popup JQuery Dialog öffnen, wenn Checkbox geklickt wird und Wiederherstellen-Schaltfläche geklickt wird
- 11. Switch DateTimePicker Ansicht, wenn die Schaltfläche geklickt wird
- 12. php: Datensatz löschen, wenn auf die Schaltfläche geklickt wird
- 13. Umgeleitet zu einer anderen Seite, wenn die Karusselltaste geklickt wird
- 14. Wie scrollt Bildansicht 100 Pixel, wenn die Schaltfläche geklickt wird
- 15. Warum eine Schaltfläche geklickt wird, wenn ein Formular gesendet wird?
- 16. Zeige Fehlermeldung, wenn auf die Schaltfläche wie geklickt wird
- 17. Globale Variable enthält Müll, wenn auf die Schaltfläche geklickt wird
- 18. Was passiert, wenn auf die Schaltfläche zum Senden geklickt wird
- 19. Zufällige Farbe jedes Mal, wenn auf die Schaltfläche geklickt wird
- 20. Element nicht ausgeblendet, wenn die Schaltfläche geklickt wird
- 21. Randloser NSButton wird grau, wenn geklickt wird
- 22. Greasemonkey-Skript wird nur ausgeführt, wenn die Seite neu geladen wird
- 23. onTouchEvent wird ausgeführt, wenn die Seite mit ViewPager und PassByValue
- 24. Zellinformationen, wenn auf die Zelle geklickt wird
- 25. Wie ajax auszuführen, wenn Seite geladen wird
- 26. Javascript wird nicht ausgeführt, wenn ein JQuery-Dialogfeld beantwortet wird
- 27. Stopp Javascript Brennen, wenn Seite geladen wird
- 28. Wie die Auswahl in einer Warnmeldung angezeigt wird, wenn die Schaltfläche geklickt wird? (Mit Javascript)
- 29. Seltsames Problem, bei dem die Schaltfläche nicht wieder aktiviert wird, wenn die Maus nicht geklickt wird
- 30. Wenn die Größe des Bildschirms geändert wird, wird die Schaltfläche
, warum die erste $? –
@Simon: Dies ist eine Abkürzung für die '.ready()' Methode von jQuery. Stellt sicher, dass das DOM geladen wird, bevor der Code ausgeführt wird, indem der Code in den Handler gestellt wird, der an '.ready()' gesendet wird. – user113716
Was für eine großartige Antwort: D +1 –