2009-05-06 5 views
1

Bitte schauen Sie sich den Code am Ende an, um die Methode zu sehen, mit der ich Ereignisse in meinem jQuery-Code verdrahtet habe. Ich bevorzuge die Verwendung von Bind und wie Sie auch sehen können, mag ich nicht anonyme Funktionen in meinen Event-Handlern verwenden.Muster für die Verdrahtung von Ereignissen mit jQuery

Ich bin benannte Funktionen wegen der folgenden zwei Gründe:

  1. Ablesbarkeit
  2. Mehrere Anrufe auf mein WireUpGlobalCommandClickEvents nicht mehr Event-Handler den Klick auf meinem Link hinzufügen.

Dies hat eine Nebenwirkung - ich muss in Daten an die OnAddNewSnippetClick binden die mit Funktionalität passieren, da in OnAddNewSnippetClick, dies bezieht sich nun auf das Element, das das Ereignis verursacht Feuer.

Ich habe JavaScript immer als Bürger zweiter Klasse behandelt, und wie Sie sehen können, versuche ich, die Konventionen, die ich in meiner ASP.NET MVC-Anwendung verwende, auch hier auf mein JavaScript anzuwenden. Ist meine Paranoia, dass mehrere Event-Handler falsch platziert wurden? Gibt es ein besseres Muster, um Event-Handler mit jQuery zu verbinden?

Antwort

2

Wenn Sie wirklich paranoid sind, wenn mehrere Ereignisse gebunden sind, können Sie live verwenden, wodurch Ereignisse basierend auf dem Selektor automatisch verknüpft werden.

$(".stuff").live('click',function(){}); 

oder

$("#element").one('click',function(){}); 

oder

$("#element").unbind('click').bind('click',function(){}); 

Aber ja, sieht aus wie Sie versuchen, MVC in Javascript zu tun, die wahrscheinlich übertrieben ist

http://docs.jquery.com/Events/live#typefn

Verwandte Themen