JezK
Edit File: avia_conditional_mega_menu.js
/** * This file holds the main javascript functions which is required for the conditional mega menu * * @author Christian "Kriesi" Budschedl * @copyright Copyright ( c ) Christian Budschedl * @link http://kriesi.at * @link http://aviathemes.com * @since Version 1.1 * @package AviaFramework */ (function($) { "use strict"; var avia_conditional_logic = { recalcTimeout: false, // bind the click event to all elements with the class avia_uploader input_event: function() { $(document).on('click', '.menu-item-avia-enableconditionallogic', function() { var checkbox = $(this), container = checkbox.parents('.menu-item').eq( 0 ); if(checkbox.is(':checked')) { container.addClass('avia_conditional_active'); container.find('.avia_conditional_logic_field').show(); } else { container.removeClass('avia_conditional_active'); container.find('.avia_conditional_logic_field').hide(); } //check if anything in the dom needs to be changed to reflect the (de)activation of the mega menu avia_conditional_logic.recalc(); }); $(document).on('change', '.menu-item-avia-conditional', function() { var select = $(this), selected = select.find(':selected'), container = select.parents('.menu-item').eq( 0 ); if(selected.hasClass('show_css_field')) { container.find('.menu-item-avia-conditionalcss').show(); } else { container.find('.menu-item-avia-conditionalcss').hide(); } avia_conditional_logic.recalc(); }); $(document).on('change', '.menu-item-avia-conditionalvalue', function() { var select = $(this), selected = select.find(':selected'), container = select.parents('.menu-item').eq( 0 ); if(selected.hasClass('show_id_field')) { container.find('.menu-item-avia-conditionalid').show(); } else { container.find('.menu-item-avia-conditionalid').hide(); } avia_conditional_logic.recalc(); }); $(document).on('mouseenter', '.menu-item-bar', function() { avia_conditional_logic.recalc(); }); }, recalcInit: function() { $(document).on("mouseup", ".menu-item-bar", function(event, ui) { if(!$(event.target).is('a')) { clearTimeout(avia_conditional_logic.recalcTimeout); avia_conditional_logic.recalcTimeout = setTimeout(avia_conditional_logic.recalc, 500); } }); }, recalc : function() { $('.menu-item').each(function(i) { var item = $(this), conditionallogic = item.find('.menu-item-avia-enableconditionallogic'); if(conditionallogic.is(':checked')) { item.addClass('avia_conditional_active'); item.find('.avia_conditional_logic_field').show(); } else { item.removeClass('avia_conditional_active'); item.find('.avia_conditional_logic_field').hide(); } var conditionaltype = item.find('.menu-item-avia-conditional','.menu-item-avia-conditionalvalue'); if(conditionaltype.find('option:selected').hasClass('show_css_field')) { item.find('.menu-item-avia-conditionalcss').show(); } else { item.find('.menu-item-avia-conditionalcss').hide(); } var conditionalvalue = item.find('.menu-item-avia-conditionalvalue'); if(conditionalvalue.find('option:selected').hasClass('show_id_field')) { item.find('.menu-item-avia-conditionalid').show(); } else { item.find('.menu-item-avia-conditionalid').hide(); } }); } }; $(function() { avia_conditional_logic.input_event(); avia_conditional_logic.recalcInit(); avia_conditional_logic.recalc(); }); })(jQuery);