javascript et interférence avec d'autres javascript
Bonjour à tous,
je me suis penché sur un code en open source de chat communautaire qui se nomme AjaxIM, depuis hier j'ai réussi à modifier le javascript pour que la connexion soit automatique et qu'il s'adapte sans problème à mon programme
mais je me heurte a un dernier problème en effet... lorsque je l'intègre à ma page, il marche parfaitement mais me désactivé tous les autres javascript du site, j'ai un menu déroulant en javascript qu'il désactive, une galerie image en javascript, qu'il désactive aussi...
pensez- vous que cela est un lien avec le z-index ( je viens de vérifier ca n'en a pas l'air ! si jele modifie on obtiens le même probleme... ) , ou d'où cela peut-il venir ?
peut-etre un problème de focus() ? je ne connais pas du tout les interférence de javascript, si vous pouvez juste me mettre sur des pistes, je ferai les recherches :p
j'ai remarquer en faisant des tests, que si j'enlève mon second javascript galerie image, il marche mieux, et si je le laisse, il me fait disparaitre carrément tout. il y a donc une sacré interférence entre les deux système... :(
merci de votre avis, si vous avez des questions je suis dans les parages...
Merci, et Bonne journée.
B.
je vous met en ligne le code qui se trouve etre la gallerie qui désactive mon autre partie, il désactive totalement l'AJAX qui sert au chat communautaire...
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
|
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.length) - (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); |