10 Stimmen

jQuery Dollar Zeichen Verwirrung

Ich bin ein bisschen verwirrt in Bezug auf das Dollar-Zeichen in jQuery, und hoffte, jemand könnte mir helfen.

Ich habe die folgende Funktionsdeklaration:

$(function() {
    $( "#create-discussion" ).button().click(function() {
        alert("Clicked");
    });

    $( "#listitems tr" ).click(function(event) {
        alert("clicked");
    });
});

Aus irgendeinem Grund funktioniert die erste Funktionsdeklaration für die Schaltfläche "Diskussion erstellen" perfekt; wenn sie angeklickt wird, erscheint ein Popup. Die zweite funktioniert jedoch nicht, und es wird kein Popup generiert, wenn ich auf die Tabellenzeilen klicke.

Ist dies einige Nuance in Bezug auf die Schaltfläche onClicks versus Tabelle Zeile onClicks? Übersehe ich etwas dummerweise Offensichtliches?

Außerdem wäre es sehr hilfreich, wenn jemand erklären würde, was $(function() {}) tatsächlich, denn ich behandle es wie $(document).ready() und ich bin mir nicht sicher, ob ich das tun kann.

13voto

Tadeck Punkte 124697

Ein Dollarzeichen ( $ ) ist eigentlich ein Alias für jQuery Funktion. Und nach die Dokumentation wenn Sie einen Rückruf als Argument an diese Funktion übergeben, sie wird ausgeführt, wenn das DOM fertig ist .

Was den zweiten Teil Ihrer Frage angeht (warum der zweite Teil des Codes nicht funktioniert): Überprüfen Sie einfach die Selektoren. Bei mir funktioniert es perfekt (siehe jsfiddle - es ist ohne .button() Methode, weil ich nicht jQuery UI laden), so kann dies durch falsche Selektoren verursacht werden.

4voto

CraigW Punkte 705

Was Sie tun, sollte funktionieren, solange Ihr Selektor Text "#listitems tr" hat etwas gültig zu wählen.

Sie können testen, indem Sie ... Wenn das Ergebnis 0 ist, bedeutet dies, dass jQuery keine gültigen Elemente gefunden hat

alert($("#listitems tr").length);

Wenn Sie den Anruf tätigen

$("a").click(function(evt) { alert("hello world!"); });

Sie binden ein Klick-Ereignis an alle <a>-Tags auf Ihrer Seite. Sie könnten dasselbe auch mit ... tun.

$("a").click(myFunc);
function myFunc(evt) { alert("hello world!"); }

Eine Klickfunktion kann an jedes HTML-Element angehängt werden. Es muss nicht unbedingt eine Schaltfläche sein, sondern kann auch , , und usw. sein. Das Element muss nicht einmal sichtbar sein, obwohl Sie nur in der Lage sein werden, den Klick auszulösen, wenn Sie das tatsächliche Ereignis aufrufen, indem Sie ...

$("a").click();

Das $("...") ist nur eine Abkürzung für die Eingabe von jQuery("...")

Ich hoffe, dies beantwortet Ihre Fragen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X