jQuery das Dollarzeichen Verwirrung
Ich bin ein bisschen verwirrt in Bezug auf den dollar-Zeichen in jQuery, und hatte gehofft, jemand könnte mir helfen.
Habe ich die folgende Funktion Erklärung:
$(function() {
$( "#create-discussion" ).button().click(function() {
alert("Clicked");
});
$( "#listitems tr" ).click(function(event) {
alert("clicked");
});
});
Für einige Grund, die erste Funktion Erklärung für das "create-Diskussion" - button funktioniert perfekt; wenn geklickt, ein popup erscheint. Doch die zweite nicht funktioniert, und keine popup generiert wird, wenn ich Sie auf den Zeilen der Tabelle.
Ist dies eine nuance in Bezug auf die-Taste onClicks versus Tabelle-Zeile onClicks? Bin ich etwas fehlt dummerweise offensichtlich?
Außerdem denke ich, dass es helfen würde, ein Haufen wenn jemand erklärt, was $(function() {})
tatsächlich, wie ich bin, behandeln Sie es wie $(document).ready()
, und ich bin mir nicht sicher, ob ich das tun kann.
- Es ist genau eine short-cut für das document-ready-event-handler. Die zwei sind funktional gleichwertig. Das ist zu sagen, dass ist nicht Ihr problem.
- Nur versuchen, zu konvertieren
$("#listitems tr")
zu$("#listitems tr td")
. (Nur so ein Gedanke.) - Tun Sie der Tabelle Zeilen existieren, wenn die $("#listitems tr") - handler gebunden ist? Beachten Sie, dass die event-Handler, die traditionell nur mit der vorhanden Elemente. Wenn Sie möchten, dass ein Werk auf die zukünftigen Elemente, die Sie benötigen, um die Verwendung von live-Handler (api.jquery.com/live).
- Was ist mit diesem
button()
Funktion? - Mike, ich glaube, Sie können haben es genagelt - meine Tabelle ist dynamisch aufgefüllt mit einem server-Abfrage nach diesem code aufgerufen wird. Blick auf die live-Handler link, den Sie erwähnt jetzt. 🙂 Bitte reichen Sie eine Antwort, so kann ich Ihnen Kredit!
- Jack Billy, das erste element wird ein Eingabe-Taste, nicht eine Zeile in der Tabelle. Die "td" - Zusatz hat nicht funktioniert, ich denke, das problem ist das, was Mike vorgeschlagen.
- Die Taste () - Funktion ist Teil von jQuery UI. Ich wollte vorschlagen er sicher war, verweisen auf die jQuery UI-Bibliothek als gut, aber wie es scheint hat Mike sortiert die aktuelle Ausgabe.
- Danke!
- Ja, Mike hat es, sobald ich live-Handler, es hat alles Super geklappt. 🙂 Mike, der post eine Antwort!!! 😛
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einem dollar-Zeichen (
$
) ist eigentlich ein alias fürjQuery
Funktion. Und nach die Dokumentation, wenn Sie einen Rückruf als argument an diese Funktion, es wird ausgeführt wenn das DOM bereit ist.Wenn es um den zweiten Teil der Frage (warum der zweite Teil des Codes funktioniert nicht): einfach mal die Selektoren. Für mich ist es perfekt funktioniert (siehe jsfiddle - es ist ohne
.button()
Methode, weil ich nicht bin laden von jQuery-UI), so kann dies verursacht sein durch falsche Selektoren.Was Sie tun sollte funktionieren, so lange, wie Sie Ihre Selektor-text "#listitems-tr" hat etwas gültiges zu wählen.
Können Sie testen, indem Sie zu tun ..., wenn das Ergebnis 0 ist, das bedeutet, dass jQuery nicht zu finden, die keine gültigen Elemente
Wenn Sie den Aufruf
Bindung eines click-Ereignis für alle <a> - tags auf Ihrer Seite. Sie könnte sehr gut das gleiche tun mit ...
Eine Klick-Funktion angebracht werden können jedes html-element. Es muss nicht ein button sein, es könnte sein , und etc. Das element selbst nicht sichtbar sein, obwohl Sie nur in der Lage sein, um das Feuer der klicken Sie auf wenn Sie rufen Sie die eigentlichen event-by-doing ...
$("a").klicken Sie();
Den $("...") ist einfach kurzer hand für die Eingabe jQuery("...")
Hoffentlich dies beantwortet Ihre Fragen.