Revision 35cf7c70
Von Moritz Bunkus vor mehr als 9 Jahren hinzugefügt
SL/ClientJS.pm | ||
---|---|---|
122 | 122 |
scroll_into_view => 1, # $(<TARGET>)[0].scrollIntoView() |
123 | 123 |
); |
124 | 124 |
|
125 |
my %trim_target_for = map { ($_ => 1) } qw(insertAfter insertBefore appendTo prependTo); |
|
126 |
|
|
125 | 127 |
sub AUTOLOAD { |
126 | 128 |
our $AUTOLOAD; |
127 | 129 |
|
... | ... | |
154 | 156 |
$args[$idx] = "" . $args[$idx] if ref($args[$idx]) eq 'SL::Presenter::EscapedText'; |
155 | 157 |
} |
156 | 158 |
|
159 |
# Trim leading whitespaces for certain jQuery functions that operate |
|
160 |
# on HTML code: $("<p>test</p>").appendTo('#some-id'). jQuery croaks |
|
161 |
# on leading whitespaces, e.g. on $(" <p>test</p>"). |
|
162 |
$args[0] =~ s{^\s+}{} if $trim_target_for{$method}; |
|
163 |
|
|
157 | 164 |
push @{ $self->_actions }, [ $method, @args ]; |
158 | 165 |
|
159 | 166 |
return $self; |
Auch abrufbar als: Unified diff
ClientJS: Ziel-Argument bestimmter Funktionen vorne trimmen
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.