[richfaces-issues] [JBoss JIRA] (RF-13567) JavaScriptService executes javascript before the complete event
Brian Leathem (JIRA)
issues at jboss.org
Thu Mar 6 02:15:35 EST 2014
Brian Leathem created RF-13567:
----------------------------------
Summary: JavaScriptService executes javascript before the complete event
Key: RF-13567
URL: https://issues.jboss.org/browse/RF-13567
Project: RichFaces
Issue Type: Bug
Security Level: Public (Everyone can see)
Reporter: Brian Leathem
Using the javascript service to execute jQuery plugins ends up with the plugin being executed before the new elements are placed in the DOM. This results in stale element references during subsequent plugin execution.
Console log with r:log enabled:
{code}
RichFaces: New request added to queue. Queue requestGroupingId changed to form1:richTable:0:collapsibleSubTable log.js:195
RichFaces: Queue will wait 0ms before submit log.js:195
RichFaces: richfaces.queue: will submit request NOW log.js:195
RichFaces: Received 'begin' event from <tbody id=form1:richTable:0:collapsibleSubTable class=rf-cst ...> log.js:195
Destroy called for sub-table-bridge of element: form1:richTable:0:collapsibleSubTable sub-table-bridge.js:89
Destroy called for sub-table of element: form1:richTable:0:collapsibleSubTable sub-table.js:71
RichFaces: Received 'beforedomupdate' event from <tbody id=form1:richTable:0:collapsibleSubTable class=rf-cst ...> log.js:195
RichFaces: <span>Server returned responseText: </span><span class="rf-log-entry-msg-xml"><partial-response id="j_id1"><changes><update id="form1:richTable:0:collapsibleSubTable"><![CDATA[<tbody id="form1:richTable:0:collapsibleSubTable" class="rf-cst"><tr id="form1:richTable:0:collapsibleSubTable:f" class="rf-cst-ftr"><td class="rf-cst-ftr-c" colspan="3">footer<ul class="data-scroller " id="form1:richTable:0:collapsibleSubTable:subscroller"><li><a class="rf-ds-btn rf-ds-btn-first rf-ds-dis" id="form1:richTable:0:collapsibleSubTable:subscroller_ds_f">««««</a></li><li><a class="rf-ds-btn rf-ds-btn-fastrwd rf-ds-dis" id="form1:richTable:0:collapsibleSubTable:subscroller_ds_fr">««</a></li><li><a class="rf-ds-btn rf-ds-btn-prev rf-ds-dis" id="form1:richTable:0:collapsibleSubTable:subscroller_ds_prev">«</a></li><li><a class="rf-ds-btn rf-ds-btn-next rf-ds-dis" id="form1:richTable:0:collapsibleSubTable:subscroller_ds_next">»</a></li><li><a class="rf-ds-btn rf-ds-btn-fastfwd rf-ds-dis" id="form1:richTable:0:collapsibleSubTable:subscroller_ds_ff">»»</a></li><li><a class="rf-ds-btn rf-ds-btn-last rf-ds-dis" id="form1:richTable:0:collapsibleSubTable:subscroller_ds_l">»»»»</a></li><script type="text/javascript">new RichFaces.ui.DataScroller("form1:richTable:0:collapsibleSubTable:subscroller",function(event,element,data){RichFaces.ajax("form1:richTable:0:collapsibleSubTable:subscroller",event,{"parameters":{"form1:richTable:0:collapsibleSubTable:subscroller:page":data.page} ,"incId":"1"} )},{"digitals":{} ,"buttons":{} ,"currentPage":1} )</script></ul></td></tr><tr id="form1:richTable:0:collapsibleSubTable:sc" style="display: none;"><td><input id="form1:richTable:0:collapsibleSubTable:state" name="form1:richTable:0:collapsibleSubTable:state" type="hidden" value="0" /><input id="form1:richTable:0:collapsibleSubTable:options" name="form1:richTable:0:collapsibleSubTable:options" type="hidden" /></td></tr></tbody>]]></update><update id="j_id1:javax.faces.ViewState:0"><![CDATA[-7868019542578483246:-4058924891838140372]]></update><extension id="org.richfaces.extension"><complete>RichFaces.jQuery(document.getElementById('form1:richTable:0:collapsibleSubTable')).subTableBridge({"optionsInput":"form1:richTable:0:collapsibleSubTable:options","formId":"form1","expandMode":"ajax","stateInput":"form1:richTable:0:collapsibleSubTable:state","eventOptions":{"incId":"1"} } );RichFaces.javascriptServiceComplete();;</complete><render>form1:richTable:0:collapsibleSubTable at body </render></extension></changes></partial-response></span> log.js:195
RichFaces: <span>Listing content of response <b>changes</b> element:<br>Element <b>update</b> for id=form1:richTable:0:collapsibleSubTable<br><span class="rf-log-entry-msg-xml"><update id="form1:richTable:0:collapsibleSubTable"><![CDATA[<tbody id="form1:richTable:0:collapsibleSubTable" class="rf-cst"><tr id="form1:richTable:0:collapsibleSubTable:f" class="rf-cst-ftr"><td class="rf-cst-ftr-c" colspan="3">footer<ul class="data-scroller " id="form1:richTable:0:collapsibleSubTable:subscroller"><li><a class="rf-ds-btn rf-ds-btn-first rf-ds-dis" id="form1:richTable:0:collapsibleSubTable:subscroller_ds_f">««««</a></li><li><a class="rf-ds-btn rf-ds-btn-fastrwd rf-ds-dis" id="form1:richTable:0:collapsibleSubTable:subscroller_ds_fr">««</a></li><li><a class="rf-ds-btn rf-ds-btn-prev rf-ds-dis" id="form1:richTable:0:collapsibleSubTable:subscroller_ds_prev">«</a></li><li><a class="rf-ds-btn rf-ds-btn-next rf-ds-dis" id="form1:richTable:0:collapsibleSubTable:subscroller_ds_next">»</a></li><li><a class="rf-ds-btn rf-ds-btn-fastfwd rf-ds-dis" id="form1:richTable:0:collapsibleSubTable:subscroller_ds_ff">»»</a></li><li><a class="rf-ds-btn rf-ds-btn-last rf-ds-dis" id="form1:richTable:0:collapsibleSubTable:subscroller_ds_l">»»»»</a></li><script type="text/javascript">new RichFaces.ui.DataScroller("form1:richTable:0:collapsibleSubTable:subscroller",function(event,element,data){RichFaces.ajax("form1:richTable:0:collapsibleSubTable:subscroller",event,{"parameters":{"form1:richTable:0:collapsibleSubTable:subscroller:page":data.page} ,"incId":"1"} )},{"digitals":{} ,"buttons":{} ,"currentPage":1} )</script></ul></td></tr><tr id="form1:richTable:0:collapsibleSubTable:sc" style="display: none;"><td><input id="form1:richTable:0:collapsibleSubTable:state" name="form1:richTable:0:collapsibleSubTable:state" type="hidden" value="0" /><input id="form1:richTable:0:collapsibleSubTable:options" name="form1:richTable:0:collapsibleSubTable:options" type="hidden" /></td></tr></tbody>]]></update></span><br>Element <b>update</b> for id=j_id1:javax.faces.ViewState:0<br><span class="rf-log-entry-msg-xml"><update id="j_id1:javax.faces.ViewState:0"><![CDATA[-7868019542578483246:-4058924891838140372]]></update></span><br>Element <b>extension</b> for id=org.richfaces.extension<br><span class="rf-log-entry-msg-xml"><extension id="org.richfaces.extension"><complete>RichFaces.jQuery(document.getElementById('form1:richTable:0:collapsibleSubTable')).subTableBridge({"optionsInput":"form1:richTable:0:collapsibleSubTable:options","formId":"form1","expandMode":"ajax","stateInput":"form1:richTable:0:collapsibleSubTable:state","eventOptions":{"incId":"1"} } );RichFaces.javascriptServiceComplete();;</complete><render>form1:richTable:0:collapsibleSubTable at body </render></extension></span><br></span> log.js:195
Create called for sub-table-bridge of element: form1:richTable:0:collapsibleSubTable sub-table-bridge.js:42
Create called for sub-table of element: form1:richTable:0:collapsibleSubTable sub-table.js:22
RichFaces: richfaces.queue: ajax submit successfull log.js:195
RichFaces: richfaces.queue: Nothing to submit log.js:195
RichFaces: Received 'success' event from <tbody id=form1:richTable:0:collapsibleSubTable class=rf-cst ...> log.js:195
RichFaces: Received 'complete' event from <tbody id=form1:richTable:0:collapsibleSubTable class=rf-cst ...> log.js:195
{code}
Note the "create" debug statements called from the plugin _create methods occur before we get to the complete event.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the richfaces-issues
mailing list