PR feedback on JS
This commit is contained in:
@@ -9,64 +9,53 @@ var edx = edx || {},
|
||||
if ($('#accordion').length) {
|
||||
|
||||
navigation.openAccordion();
|
||||
navigation.checkForCurrent();
|
||||
navigation.listenForClick();
|
||||
}
|
||||
},
|
||||
|
||||
openAccordion: function() {
|
||||
$('#open_close_accordion a').click();
|
||||
$('.course-wrapper').toggleClass('closed');
|
||||
$('.course-wrapper').removeClass('closed');
|
||||
$('#accordion').show();
|
||||
|
||||
navigation.checkForCurrent();
|
||||
navigation.listenForClick();
|
||||
},
|
||||
|
||||
checkForCurrent: function() {
|
||||
var active;
|
||||
var active = $('#accordion .chapter-content-container .chapter-menu:has(a.active)').index('#accordion .chapter-content-container .chapter-menu') ? $('#accordion .chapter-content-container .chapter-menu:has(a.active)').index('#accordion .chapter-content-container .chapter-menu') : 0,
|
||||
activeSection = $('#accordion .button-chapter:eq(' + active + ')');
|
||||
|
||||
active = $('#accordion div div:has(a.active)').index('#accordion div div');
|
||||
|
||||
if (typeof active === 'undefined' || active < 0) {
|
||||
active = 0;
|
||||
}
|
||||
|
||||
if (active > 0) {
|
||||
$('#accordion').find('.button-chapter:eq(' + active + ')').trigger('click');
|
||||
}
|
||||
navigation.closeAccordions();
|
||||
navigation.openAccordionSection(activeSection);
|
||||
},
|
||||
|
||||
listenForClick: function() {
|
||||
$('#accordion').on('click', '.button-chapter', function(event) {
|
||||
// close and reset all accrdions
|
||||
navigation.resetAllAccordions();
|
||||
|
||||
// open this accordion and send focus
|
||||
navigation.closeAccordions();
|
||||
navigation.openAccordionSection(event.currentTarget);
|
||||
|
||||
// assign classes and set open aria
|
||||
navigation.setAriaAttrs(event.currentTarget);
|
||||
});
|
||||
},
|
||||
|
||||
resetAllAccordions: function() {
|
||||
closeAccordions: function() {
|
||||
$('.chapter-content-container').hide();
|
||||
$('.chapter-content-container .chapter-menu').hide();
|
||||
|
||||
$('#accordion .button-chapter').each(function(event) {
|
||||
$(this).removeClass('is-open').attr('aria-pressed', 'false');
|
||||
$(this).next('.chapter-content-container').attr('aria-expanded', 'false');
|
||||
$(this).children('.group-heading').removeClass('active');
|
||||
$(this).children('.group-heading').find('.icon').addClass('fa-caret-right').removeClass('fa-caret-down');
|
||||
var el = $(this);
|
||||
|
||||
el.removeClass('is-open').attr('aria-pressed', 'false');
|
||||
el.next('.chapter-content-container').attr('aria-expanded', 'false');
|
||||
el.children('.group-heading').removeClass('active');
|
||||
el.children('.group-heading').find('.icon').addClass('fa-caret-right').removeClass('fa-caret-down');
|
||||
});
|
||||
},
|
||||
|
||||
openAccordionSection: function(section) {
|
||||
$(section).next('.chapter-content-container').show().focus();
|
||||
$(section).next('.chapter-content-container').find('.chapter-menu').show();
|
||||
var elSection = $(section).next('.chapter-content-container');
|
||||
|
||||
navigation.setAriaAttrs(section);
|
||||
},
|
||||
elSection.show().focus();
|
||||
elSection.find('.chapter-menu').show();
|
||||
|
||||
setAriaAttrs: function(section) {
|
||||
$(section).addClass('is-open').attr('aria-pressed', 'true');
|
||||
$(section).next('.chapter-content-container').attr('aria-expanded', 'true');
|
||||
$(section).children('.group-heading').addClass('active');
|
||||
|
||||
@@ -159,7 +159,7 @@ from branding import api as branding_api
|
||||
|
||||
<%block name="js_extra"/>
|
||||
<script type="text/javascript" src="${static.url('js/vendor/noreferrer.js')}" charset="utf-8"></script>
|
||||
<script type="text/javascript" src="${static.url('coffee/src/navigation.js')}" charset="utf-8"></script>
|
||||
<script type="text/javascript" src="${static.url('js/utils/navigation.js')}" charset="utf-8"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user