Ver Mensaje Individual
  #2 (permalink)  
Antiguo 03/09/2010, 03:56
Avatar de siken
siken
 
Fecha de Ingreso: octubre-2008
Mensajes: 52
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Evitar nueva ventana

dejo el codigo javascript completo, porque creo que el problema esta en la funcion click, porfavor me urge :(


/************************************************** ************

Script : Image Menu
Version : 2.2
Authors : Samuel Birch
Desc :
Licence : Open Source MIT Licence

************************************************** ************/

var ImageMenu = new Class({

getOptions: function(){
return {
onOpen: false,
onClose: Class.empty,
openWidth: 200,
transition: Fx.Transitions.quadOut,
duration: 400,
open: null,
border: 0
};
},

initialize: function(elements, options){
this.setOptions(this.getOptions(), options);

this.elements = $$(elements);

this.widths = {};
this.widths.closed = this.elements[0].getStyle('width').toInt();
this.widths.openSelected = this.options.openWidth;
this.widths.openOthers = Math.round(((this.widths.closed*this.elements.leng th) - (this.widths.openSelected+this.options.border)) / (this.elements.length-1))


this.fx = new Fx.Elements(this.elements, {wait: false, duration: this.options.duration, transition: this.options.transition});

this.elements.each(function(el,i){
el.addEvent('mouseenter', function(e){
new Event(e).stop();
this.reset(i);

}.bind(this));

el.addEvent('mouseleave', function(e){
new Event(e).stop();
this.reset(this.options.open);

}.bind(this));

var obj = this;

el.addEvent('click', function(e){

if(obj.options.onOpen){
new Event(e).stop();
if(obj.options.open == i){
obj.options.open = null;
obj.options.onClose(this.href, i);
}else{
obj.options.open = i;
obj.options.onOpen(this.href, i);
}


}

})

}.bind(this));

if(this.options.open){
if($type(this.options.open) == 'number'){
this.reset(this.options.open);
}else{
this.elements.each(function(el,i){
if(el.id == this.options.open){
this.reset(i);
}
},this);
}
}

},

reset: function(num){
if($type(num) == 'number'){
var width = this.widths.openOthers;
if(num+1 == this.elements.length){
width += this.options.border;
}
}else{
var width = this.widths.closed;
}

var obj = {};
this.elements.each(function(el,i){
var w = width;
if(i == this.elements.length-1){
w = width+5
}
obj[i] = {'width': w};
}.bind(this));

if($type(num) == 'number'){
obj[num] = {'width': this.widths.openSelected};
}

this.fx.start(obj);
}

});

ImageMenu.implement(new Options);
ImageMenu.implement(new Events);


/************************************************** ***********/