Sha256: b87dc7253e007efa2300efca26eefd71266f078261cde6265a1e1a89c988e4d2

Contents?: true

Size: 1.21 KB

Versions: 5

Compression:

Stored size: 1.21 KB

Contents

/**
 * @namespace WORKAREA.toggleClassButton
 */
WORKAREA.registerModule('toggleClassButton', (function () {
    'use strict';

    var handleToggleEvent = function (event) {
            var $button = $(event.currentTarget),
                data = $button.data('toggleClassButton');

            // Prevent anchor default event only.
            if ($button.is('a')) { event.preventDefault(); }

            if (data.closest === true) {
                updateClosest(data.target, data.class, $button);
                return;
            }

            updateClass(data.target, data.class);
        },

        updateClass = function (toggleTarget, className) {
            $(toggleTarget).toggleClass(className);
        },

        updateClosest = function (toggleTarget, className, $button) {
            $button.closest(toggleTarget).toggleClass(className);
        },

        /**
         * Module Init
         * Add a class to another element on click
         * Accepts: data{'target': 'x', class: 'y', closest: boolean}
         */

        init = function ($scope) {
            $('[data-toggle-class-button]', $scope)
                .on('click', handleToggleEvent);
        };

    return {
        init: init
    };
}()));

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
workarea-nvy_theme-1.2.1 app/assets/javascripts/workarea/storefront/modules/toggle_class_button.js
workarea-nvy_theme-1.2.0 app/assets/javascripts/workarea/storefront/modules/toggle_class_button.js
workarea-nvy_theme-1.1.4 app/assets/javascripts/workarea/storefront/modules/toggle_class_button.js
workarea-nvy_theme-1.1.3 app/assets/javascripts/workarea/storefront/modules/toggle_class_button.js
workarea-nvy_theme-1.1.2 app/assets/javascripts/workarea/storefront/modules/toggle_class_button.js