Jump to content

Contraer bloque de categorías en página de producto


Recommended Posts

Muy buenas.

 

Necesito contraer el módulo del bloque de categorías cuando estoy en la ficha de un producto, ya que he instalado un módulo específico de pedidos y el bloque de categorías desplegado lo solapa y no deja trabajar bien..

 

He estado revisando el archivo jquery.dcjaccordion.2.7.js, que es el que lo controla, pero no consigo que el menú quede contraído cuando veo un producto.

 

Pego el código aquí a ver si algún crack sabría contraerlo. Muchas gracias.

 

*

* DC jQuery Vertical Accordion Menu - jQuery vertical accordion menu plugin

* Copyright © 2011 Design Chemical

*

* Dual licensed under the MIT and GPL licenses:

* http://www.opensourc...mit-license.php

* http://www.gnu.org/licenses/gpl.html

*

*/

(function($){

$.fn.dcAccordion = function(options) {

//set default options

var defaults = {

classParent : 'dcjq-parent',

classActive : 'active', classArrow : 'dcjq-icon', classCount : 'dcjq-count',

classExpand : 'dcjq-current-parent',

eventType : 'click',

hoverDelay : 300,

menuClose : true,

autoClose : true,

autoExpand : false,

speed : 'slow',

saveState : true,

disableLink : true, showCount : false,

cookie : 'dcjq-accordion'

};

//call in the default otions

var options = $.extend(defaults, options);

this.each(function(options){

var obj = this;

setUpAccordion();

if(defaults.saveState == true){

checkCookie(defaults.cookie, obj);

}

if(defaults.autoExpand == true){

$('li.'+defaults.classExpand+' > a').addClass(defaults.classActive);

}

resetAccordion();

if(defaults.eventType == 'hover'){

var config = {

sensitivity: 2, // number = sensitivity threshold (must be 1 or higher)

interval: defaults.hoverDelay, // number = milliseconds for onMouseOver polling interval

over: linkOver, // function = onMouseOver callback (REQUIRED)

timeout: defaults.hoverDelay, // number = milliseconds delay before onMouseOut

out: linkOut // function = onMouseOut callback (REQUIRED)

};

$('li a',obj).hoverIntent(config);

var configMenu = {

sensitivity: 2, // number = sensitivity threshold (must be 1 or higher)

interval: 1000, // number = milliseconds for onMouseOver polling interval

over: menuOver, // function = onMouseOver callback (REQUIRED)

timeout: 1000, // number = milliseconds delay before onMouseOut

out: menuOut // function = onMouseOut callback (REQUIRED)

};

$(obj).hoverIntent(configMenu);

// Disable parent links

if(defaults.disableLink == true){

$('li a',obj).click(function(e){

if($(this).siblings('ul').length >0){

e.preventDefault();

}

});

}

} else {

$('li a',obj).click(function(e){

$activeLi = $(this).parent('li');

$parentsLi = $activeLi.parents('li');

$parentsUl = $activeLi.parents('ul');

// Prevent browsing to link if has child links

if(defaults.disableLink == true){

if($(this).siblings('ul').length >0){

e.preventDefault();

}

}

// Auto close sibling menus

if(defaults.autoClose == true){

autoCloseAccordion($parentsLi, $parentsUl);

}

if ($('> ul',$activeLi).is(':visible')){

$('ul',$activeLi).slideUp(defaults.speed);

$('a',$activeLi).removeClass(defaults.classActive);

} else {

$(this).siblings('ul').slideToggle(defaults.speed);

$('> a',$activeLi).addClass(defaults.classActive);

}

// Write cookie if save state is on

if(defaults.saveState == true){

createCookie(defaults.cookie, obj);

}

});

}

// Set up accordion

function setUpAccordion(){

$arrow = '<span class="'+defaults.classArrow+'"></span>';

var classParentLi = defaults.classParent+'-li';

$('> ul',obj).show();

$('li',obj).each(function(){

if($('> ul',this).length > 0){ $(this).addClass(classParentLi);

$('> a',this).addClass(defaults.classParent).append($arrow);

}

});

$('> ul',obj).hide();

if(defaults.showCount == true){

$('li.'+classParentLi,obj).each(function(){

if(defaults.disableLink == true){

var getCount = parseInt($('ul a:not(.'+defaults.classParent+')',this).length);

} else {

var getCount = parseInt($('ul a',this).length);

}

$('> a',this).append(' <span class="'+defaults.classCount+'">('+getCount+')</span>');

});

}

}

 

function linkOver(){

 

$activeLi = $(this).parent('li');

$parentsLi = $activeLi.parents('li');

$parentsUl = $activeLi.parents('ul');

 

// Auto close sibling menus

if(defaults.autoClose == true){

autoCloseAccordion($parentsLi, $parentsUl);

 

}

 

if ($('> ul',$activeLi).is(':visible')){

$('ul',$activeLi).slideUp(defaults.speed);

$('a',$activeLi).removeClass(defaults.classActive);

} else {

$(this).siblings('ul').slideToggle(defaults.speed);

$('> a',$activeLi).addClass(defaults.classActive);

}

 

// Write cookie if save state is on

if(defaults.saveState == true){

createCookie(defaults.cookie, obj);

}

}

 

function linkOut(){

}

 

function menuOver(){

}

 

function menuOut(){

 

if(defaults.menuClose == true){

$('ul',obj).slideUp(defaults.speed);

// Reset active links

$('a',obj).removeClass(defaults.classActive);

createCookie(defaults.cookie, obj);

}

}

 

// Auto-Close Open Menu Items

function autoCloseAccordion($parentsLi, $parentsUl){

$('ul',obj).not($parentsUl).slideUp(defaults.speed);

// Reset active links

$('a',obj).removeClass(defaults.classActive);

$('> a',$parentsLi).addClass(defaults.classActive);

}

// Reset accordion using active links

function resetAccordion(){

$('ul',obj).hide();

$allActiveLi = $('a.'+defaults.classActive,obj);

$allActiveLi.siblings('ul').show();

}

});

// Retrieve cookie value and set active items

function checkCookie(cookieId, obj){

var cookieVal = $.cookie(cookieId);

if(cookieVal != null){

// create array from cookie string

var activeArray = cookieVal.split(',');

$.each(activeArray, function(index,value){

var $cookieLi = $('li:eq('+value+')',obj);

$('> a',$cookieLi).addClass(defaults.classActive);

var $parentsLi = $cookieLi.parents('li');

$('> a',$parentsLi).addClass(defaults.classActive);

});

}

}

// Write cookie

function createCookie(cookieId, obj){

var activeIndex = [];

// Create array of active items index value

$('li a.'+defaults.classActive,obj).each(function(i){

var $arrayItem = $(this).parent('li');

var itemIndex = $('li',obj).index($arrayItem);

activeIndex.push(itemIndex);

});

// Store in cookie

$.cookie(cookieId, activeIndex, { path: '/' });

}

};

})(jQuery);

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...