2017-09-07 1 views
1

Warum ist es eine schlechte Übung, dies zu tun? Welche Probleme verursacht dies für das Programm?Warum ist es eine schlechte Übung, eine Klickfunktion in einer Klickfunktion zu haben? JQuery

$("foo").click(function(){ 

    $("another-foo").click(function({ 

    })); 
}); 
+0

weil es nicht immer richtig zünden kann. es wird wie ein Treffer sein. Erstellen Sie einfach eine Funktion und rufen Sie diese Funktion einfach in Ihrem $ ("foo") auf. Click (function() {...? –

+2

Das liegt daran, dass Sie den Status der Ereignisse an keiner Stelle in der Lebensdauer Delegierte Event-Handler, oder mit Flags zum Aktivieren/Deaktivieren der Logik sind viel bessere Ansätze –

+0

würde es einen Unterschied machen, wenn ich $ ("another-foo"). Klicken Sie auf (function()) in einer Funktion doThis() und aufrufen Funktion nach $ ("foo"). click (function())? –

Antwort

1

Lassen Sie mich erklären.

$(selector).click(function(){........}) weist den Event-Handler click für das Element selector als Callback-Funktion zu. In Ihrem Beispiel wird click Ereignis für Element $("another-foo") nur zugewiesen, wenn click Ereignis für Element $("foo") ausgelöst wird. Bis dahin werden keine Click-Events für das Element "another-foo" behandelt. Das Zuweisen von Ereignishandlern ist nicht das Aufrufen von Funktionen! Es legt nur fest, welche Funktion beim Auslösen des Ereignisses aufgerufen werden soll.

Verwandte Themen