I am having an issue with using jQuery Tabelize when Locker Services are activated.When Locker services are deactivated code just works fine.
I have created sample code to reproduce the error.
Component Code:
<aura:component implements="force:appHostable,flexipage:availableForAllPageTypes,flexipage:availableForRecordHome,force:hasRecordId,force:lightningQuickAction" access="global" >
<ltng:require styles="/resource/JqueryTabelizer/tabelizer.min.css"/>
<ltng:require scripts="/resource/JQueryLatestLockerService/jquery-2.2.4.min.js,
/resource/JQueryLatestLockerService/jquery-ui.min.js,
/resource/JqueryTabelizer/jquery.tabelizer.min.js" afterScriptsLoaded="{!c.doInit}"/>
<aura:attribute name="isResourcesLoaded" type="Boolean" default="false"/>
<table id="demo" class="controller">
<tr data-level="header" class="header">
<td></td>
<td>Column 1</td>
<td>Column 2</td>
<td>Column 3</td>
</tr>
<tr data-level="1" id="level_1_a">
<td>Level 1 A</td>
<td class="data">2</td>
<td class="data">2</td>
<td class="data">2</td>
</tr>
<tr data-level="2" id="level_2_a">
<td>Level 2 A</td>
<td class="data">2</td>
<td class="data">2</td>
<td class="data">2</td>
</tr>
<tr data-level="3" id="level_3_a">
<td>Level 3 A</td>
<td class="data">2</td>
<td class="data">2</td>
<td class="data">2</td>
</tr>
<tr data-level="3" id="level_3_b">
<td>Level 3 B</td>
<td class="data">2</td>
<td class="data">2</td>
<td class="data">2</td>
</tr>
<tr data-level="4" id="level_4_c">
<td>Level 4 C</td>
<td class="data">2</td>
<td class="data">2</td>
<td class="data">2</td>
</tr>
<tr data-level="4" id="level_4_d">
<td>Level 4 D</td>
<td class="data">2</td>
<td class="data">2</td>
<td class="data">2</td>
</tr>
<tr data-level="4" id="level_4_e">
<td>Level 4 E</td>
<td class="data">2</td>
<td class="data">2</td>
<td class="data">2</td>
</tr>
<tr data-level="1" id="level_1_b">
<td>Level 1 B</td>
<td class="data">2</td>
<td class="data">2</td>
<td class="data">2</td>
</tr>
<tr data-level="2" id="level_2_b">
<td>Level 2 B</td>
<td class="data">2</td>
<td class="data">2</td>
<td class="data">2</td>
</tr>
<tr data-level="3" id="level_3_c">
<td>Level 3 C</td>
<td class="data">2</td>
<td class="data">2</td>
<td class="data">2</td>
</tr>
<tr data-level="4" id="level_4_h">
<td>Level 4 H</td>
<td class="data">2</td>
<td class="data">2</td>
<td class="data">2</td>
</tr>
<tr data-level="4" id="level_4_i">
<td>Level 4 I</td>
<td class="data">2</td>
<td class="data">2</td>
<td class="data">2</td>
</tr>
<tr data-level="4" id="level_4_j">
<td>Level 4 J</td>
<td class="data">2</td>
<td class="data">2</td>
<td class="data">2</td>
</tr>
<tr data-level="3" id="level_3_d">
<td>Level 3 D</td>
<td class="data">2</td>
<td class="data">2</td>
<td class="data">2</td>
</tr>
</table>
</aura:component>
JS Controller Code :
({
doInit: function(component,event,helper) {
$(document).ready(function(){
$('#demo').tabelize({
onRowClick : self.rowClicker,
//must be set before init
fullRowClickable : true,
// callbacks
onBeforeRowClick : null,
onAfterRowClick : null,
onReady : null
});
});
}
})
After activating locker services it throws error as
Uncaught TypeError: Cannot read property 'apply' of undefined throws atresources/ZCuyRUYzK_kAf4cKCIeS2A/lockerservice/safeEval.html:84
Or it throws an error as "PrevRow is not defined". Any help to resolve this would be much appreciated.