Salut à tous,
J'ai les codes javascript ci-dessous qui sont tous les deux dans un même fichier javascript.
Le premier code javascript ci-dessous sert à afficher une image dans mon menu. Cette image change lorsqu'on sélectionne un autre produit dans une liste déroulante qui est sous cette image :
Le second code javascript met en forme des input du type checkbox qui sont dans mon menu :
Lorsque je charge ma page, l'image au-dessus de ma liste déroulante ne s'affiche pas, si je sélectionne un autre produit depuis cette liste déroulante l'image s'affiche, c'est donc un problème onload.
J'ai un window.onload = update_type_bijou; pour l'une de mes fonctions javascript et un autre onload = function(), comment résoudre ce conflit javascript ?
Merci pour votre aide et vos réponses.
J'ai les codes javascript ci-dessous qui sont tous les deux dans un même fichier javascript.
Le premier code javascript ci-dessous sert à afficher une image dans mon menu. Cette image change lorsqu'on sélectionne un autre produit dans une liste déroulante qui est sous cette image :
Code:
function update_type_bijou() {
var e = document.getElementById("caption_bijou");
var id = e.options[e.selectedIndex].id;
document.getElementById('image_bijou').src = ../images/catalogue/' + id;
}
window.onload = update_type_bijou;
Le second code javascript met en forme des input du type checkbox qui sont dans mon menu :
Code:
var d = document;
var safari = (navigator.userAgent.toLowerCase().indexOf('safari') != -1) ? true : false;
var gebtn = function(parEl,child) { return parEl.getElementsByTagName(child); };
onload = function() {
var body = gebtn(d,'body')[0];
body.className = body.className && body.className != '' ? body.className + ' has-js' : 'has-js';
if (!d.getElementById || !d.createTextNode) return;
var ls = gebtn(d,'label');
for (var i = 0; i < ls.length; i++) {
var l = ls[i];
if (l.className.indexOf('label_') == -1) continue;
var inp = gebtn(l,'input')[0];
if (l.className == 'label_check') {
l.className = (safari && inp.checked == true || inp.checked) ? 'label_check c_on' : 'label_check c_off';
l.onclick = check_it;
};
if (l.className == 'label_radio') {
l.className = (safari && inp.checked == true || inp.checked) ? 'label_radio r_on' : 'label_radio r_off';
l.onclick = turn_radio;
};
};
};
var check_it = function() {
var inp = gebtn(this,'input')[0];
if (this.className == 'label_check c_off' || (!safari && inp.checked)) {
this.className = 'label_check c_on';
if (safari) inp.click();
} else {
this.className = 'label_check c_off';
if (safari) inp.click();
};
};
var turn_radio = function() {
var inp = gebtn(this,'input')[0];
if (this.className == 'label_radio r_off' || inp.checked) {
var ls = gebtn(this.parentNode,'label');
for (var i = 0; i < ls.length; i++) {
var l = ls[i];
if (l.className.indexOf('label_radio') == -1) continue;
l.className = 'label_radio r_off';
};
this.className = 'label_radio r_on';
if (safari) inp.click();
} else {
this.className = 'label_radio r_off';
if (safari) inp.click();
};
};
function setupLabel() {
if ($('.label_check input').length) {
$('.label_check').each(function(){
$(this).removeClass('c_on');
});
$('.label_check input:checked').each(function(){
$(this).parent('label').addClass('c_on');
});
};
if ($('.label_radio input').length) {
$('.label_radio').each(function(){
$(this).removeClass('r_on');
});
$('.label_radio input:checked').each(function(){
$(this).parent('label').addClass('r_on');
});
};
};
Lorsque je charge ma page, l'image au-dessus de ma liste déroulante ne s'affiche pas, si je sélectionne un autre produit depuis cette liste déroulante l'image s'affiche, c'est donc un problème onload.
J'ai un window.onload = update_type_bijou; pour l'une de mes fonctions javascript et un autre onload = function(), comment résoudre ce conflit javascript ?
Merci pour votre aide et vos réponses.