Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $(document).on('keydown', '.slick-initialized *', function (e) {
- var keyCode = (e.keyCode ? e.keyCode : e.which);
- if (keyCode !== 9) { return; }
- var me = $(this);
- // Traverse up to the parent slide
- var slide = me.parents('.slick-slide');
- if (slide.length < 1) { return; }
- // Get all elements in the slick slider
- var elms = slide.find('*');
- if (elms.length < 1) { return; }
- // Get tabable elements
- var tabable = [];
- elms.each(function () {
- var tabindex = $(this).attr('tabindex');
- if (tabindex === -1 || typeof tabindex === 'undefined') { return; }
- tabable.push(this);
- });
- if (tabable.length < 1) { return; }
- // Get the current slide index and increase/decrease it's value.
- var inc = (e.shiftKey) ? -1 : 1;
- var idx = slide.data('slick-index');
- idx += inc;
- // Get a reference to the slick slider
- var slider = me.parents('.slick-initialized');
- // Loop through each tabable element
- for (var i = 0; i < tabable.length; i++) {
- // Go to next/prev slide if we're on the last/first tabable element
- if (tabable[i] === e.target) {
- if ((i === tabable.length - 1 && inc > 0) || (i === 0 && inc < 0)) {
- me[0].blur();
- e.stopImmediatePropagation();
- e.preventDefault();
- slider.slick('slickGoTo', idx);
- }
- }
- }
- });
Advertisement
Add Comment
Please, Sign In to add comment