ClientJS: Funktionen zum Hinzufügen und Entfernen generischer Eventhandler
authorMoritz Bunkus <m.bunkus@linet-services.de>
Wed, 31 Jul 2013 10:29:07 +0000 (12:29 +0200)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Wed, 31 Jul 2013 10:41:11 +0000 (12:41 +0200)
SL/ClientJS.pm
js/client_js.js

index 7eb092c..0e18d73 100644 (file)
@@ -70,10 +70,15 @@ my %supported_methods = (
   # Form Events
   focus        => 1,
 
+  # Generic Event Handling ## pattern: $(<TARGET>).<FUNCTION>(<ARG1>, kivi.get_function_by_name(<ARG2>))
+  on           => 3,
+  off          => 3,
+  one          => 3,
+
   # ## jqModal plugin ##
 
   # Closing and removing the popup
-  jqmClose               => 1,
+  jqmClose               => 1, # $(<TARGET>).jqmClose()
 
   # ## jstree plugin ## pattern: $.jstree._reference($(<TARGET>)).<FUNCTION>(<ARGS>)
 
@@ -464,6 +469,15 @@ C<data>, C<removeData>
 
 C<focus>
 
+=item Generic Event Handlers
+
+C<on>, C<off>, C<one>
+
+These attach/detach event listeners to specific selectors. The first
+argument is the selector, the second the name of the events and the
+third argument is the name of the handler function. That function must
+already exist when the handler is added.
+
 =back
 
 =head2 JSTREE JQUERY PLUGIN
index 51e3638..e5fdcb5 100644 (file)
@@ -86,6 +86,11 @@ ns.eval_json_result = function(data) {
       // Form Events
       else if (action[0] == 'focus')                $(action[1]).focus();
 
+      // Generic Event Handling ##
+      else if (action[0] == 'on')                   $(action[1]).on(action[2], kivi.get_function_by_name(action[3]));
+      else if (action[0] == 'off')                  $(action[1]).off(action[2], kivi.get_function_by_name(action[3]));
+      else if (action[0] == 'one')                  $(action[1]).one(action[2], kivi.get_function_by_name(action[3]));
+
       // ## jqModal plugin ##
 
       // Closing and removing the popup