I've been updating some of my older user macros which called jQuery directly AJS.$ as recommended here: https://confluence.atlassian.com/display/CONFKB/How+to+Use+JavaScript+in+Confluence
Some of my code uses the .each function of jQuery.
If I replace "jQuery.each() {...}" with "AJS.$.each() {...}" then a Velocity Parser Exception error is thrown and the macro doesn't work.
If I try "AJS.each() {...}" then there's no sign of an error, but the macro doesn't work.
I've checked this forum and the documentation (https://developer.atlassian.com/display/AUI/AJS+helper+functions) but found no examples of how the .each function can be used from AJS.$.
Anyone come across this before and found a solution?
Thanks,
Charles
check this
another example
Those examples both use AJS.$.each which I've tried, resulting in an error.
I'm running Confluence 4.2.1, so perhaps the AJS library offers support for .each in more recent versions?
I notice other users have been having similar trouble. In this case with the .ajax method - https://answers.atlassian.com/questions/131487/ajax-calls-breaking-confluence
Neither .ajax nor .each work for me. I get a similar error to the one posted in that topic.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
can you share the error message ?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
The error message recorded in the Confluence log file is as follows:
Caused by: org.apache.velocity.exception.ParseErrorException: Encountered "," at getRenderedContent[line 86, column 30]
Was expecting one of:
<EOF>
"(" ...
<RPAREN> ...
<ESCAPE_DIRECTIVE> ...
<SET_DIRECTIVE> ...
"##" ...
"\\\\" ...
"\\" ...
<TEXT> ...
"*#" ...
"*#" ...
<STRING_LITERAL> ...
<IF_DIRECTIVE> ...
<STOP_DIRECTIVE> ...
<INTEGER_LITERAL> ...
<FLOATING_POINT_LITERAL> ...
<WORD> ...
<BRACKETED_WORD> ...
<IDENTIFIER> ...
<DOT> ...
"{" ...
"}" ...
The line number & position given relates to this line in the user macro:
Old version - works fine:
86 jQuery.each(rows, function(index, row) {
87 row.sortKey = sortKey(AJS.$(row).children('td').eq(column));
88 });
New version - errors:
86 AJS.$.each(rows, function(index, row) {
87 row.sortKey = sortKey(AJS.$(row).children('td').eq(column));
88 });
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.