Beispiel #1
0
 /**
  * Fügt dem JavaScript des Tags eine weitere Funktion hinzu
  *
  * z. B. so:
  * <span id="element"></span>
  * <script type="text/javascript">$('#element').click({..})</script>
  *
  * @param Expression $code wird mit einem . an das Javascript des Selectors angehängt $code darf also am Anfang keinen . haben
  */
 public static function chain(\Psc\HTML\Tag $tag, Expression $code)
 {
     if (isset($tag->templateContent->jQueryChain)) {
         // append to previous created chain
         $tag->templateContent->jQueryChain .= sprintf("\n      .%s", $code->JS());
     } else {
         /*
          * make something like:
          *
          * require([...], function () {
          *   require([...], function (jQuery) {
          *     jQuery('selector for element')%jQueryChain%
          *   });
          * });
          */
         $tag->templateAppend("\n" . Helper::embedWithJQuery(new jsCode('    ' . self::getClassSelector($tag) . '%jQueryChain%')));
         $tag->templateContent->jQueryChain = sprintf("\n      .%s", $code->JS());
     }
     return $tag;
 }