1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- /* ========================================================================
- * Ratchet: segmented-controllers.js v2.0.2
- * http://goratchet.com/components#segmentedControls
- * ========================================================================
- * Copyright 2014 Connor Sears
- * Licensed under MIT (https://github.com/twbs/ratchet/blob/master/LICENSE)
- * ======================================================================== */
- !(function () {
- 'use strict';
- var getTarget = function (target) {
- var i;
- var segmentedControls = document.querySelectorAll('.segmented-control .control-item');
- for (; target && target !== document; target = target.parentNode) {
- for (i = segmentedControls.length; i--;) {
- if (segmentedControls[i] === target) {
- return target;
- }
- }
- }
- };
- window.addEventListener('touchend', function (e) {
- var activeTab;
- var activeBodies;
- var targetBody;
- var targetTab = getTarget(e.target);
- var className = 'active';
- var classSelector = '.' + className;
- if (!targetTab) {
- return;
- }
- activeTab = targetTab.parentNode.querySelector(classSelector);
- if (activeTab) {
- activeTab.classList.remove(className);
- }
- targetTab.classList.add(className);
- if (!targetTab.hash) {
- return;
- }
- targetBody = document.querySelector(targetTab.hash);
- if (!targetBody) {
- return;
- }
- activeBodies = targetBody.parentNode.querySelectorAll(classSelector);
- for (var i = 0; i < activeBodies.length; i++) {
- activeBodies[i].classList.remove(className);
- }
- targetBody.classList.add(className);
- });
- window.addEventListener('click', function (e) { if (getTarget(e.target)) {e.preventDefault();} });
- }());
|