jQuery kann aus HTML-Strings DOM-Objekte bauen:
$("<p>stuff</p>"). Beginnt der HTML-String mit Leerzeichen, so croakt
jQuery daran. Daher bei den betroffenen Funktionen, die immer auf einem
so gebauten DOM-Objekt hantieren, das Ziel-Argument um führende
Leerzeichen bereinigen.
scroll_into_view => 1, # $(<TARGET>)[0].scrollIntoView()
);
+my %trim_target_for = map { ($_ => 1) } qw(insertAfter insertBefore appendTo prependTo);
+
sub AUTOLOAD {
our $AUTOLOAD;
$args[$idx] = "" . $args[$idx] if ref($args[$idx]) eq 'SL::Presenter::EscapedText';
}
+ # Trim leading whitespaces for certain jQuery functions that operate
+ # on HTML code: $("<p>test</p>").appendTo('#some-id'). jQuery croaks
+ # on leading whitespaces, e.g. on $(" <p>test</p>").
+ $args[0] =~ s{^\s+}{} if $trim_target_for{$method};
+
push @{ $self->_actions }, [ $method, @args ];
return $self;