Onclick javascript IE6 [Résolu]

Signaler
Messages postés
32
Date d'inscription
jeudi 23 septembre 2004
Statut
Membre
Dernière intervention
20 août 2010
-
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
-
Bonjour j'éprouve présentement un problème de compatibilité avec IE6 pour l'appelle d'une fonction.

J'ai une bannière dynamique en javascript avec une rotation(fadein, fadeout), cela ne pose aucun problème dans aucun navigateur. J'ai rajoute des petits bouton (div) afin de selectionner la bannière que l'on veut voir. Dans tous les navigateurs, sauf IE6, tous fonctionne. Si je fait un alert en IE6 cela s'exécute mais si j'appelle la fonction externe cela ne fonctionne pas.

function clickBox(id,img_num)
{
if(id.className == "flash_btn")
{
rotate(img_num);	
}
}

function rotate(img_num) 
{
clearTimeout(t);

document.getElementById('btn_flash'+current_banner).className = 'flash_btn';
$("imgid"+current_banner).fadeOut(1000);

document.getElementById('btn_flash'+img_num).className = 'flash_btn_active';
$("imgid"+img_num).fadeIn(1000);

current_banner = img_num;

if(img_num >= 5 || img_num <=0)
{
img_num = 1;
}
else
{
img_num++;	
}	

t = setTimeout(function(){rotate(img_num)},5000);
}





J'ai fait plusieurs essai mais sans résultat.

Merci

Maxetime

5 réponses

Messages postés
32
Date d'inscription
jeudi 23 septembre 2004
Statut
Membre
Dernière intervention
20 août 2010

Bonjour,

après quelque test j'ai finalement trouvé l'erreur, afin d'ajoute le hover au div en ie6 j'ai utiliser le htc whatever:hover et ce dernier rajoute une class en ie6. Cette class rentrait en conflit avec mon script de verification. Voici donc la correction que je lui est apporter :

function clickBox(id,img_num)
{
if(id.className.split(" ",1) == "flash_btn")
{
rotate(img_num);	
}
}


Cela ne vérifie que la première class du div.

Merci encore,

Maxetime
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
14
Bonjour,
j'extrais le principal
d'abord...

donc ton élément btn_flash1 a une class "flash_btn_active"

ensuite...
function clickBox(id,img_num){
  if(id.className == "flash_btn"){
    rotate(img_num);	
  }
}
ici tu testes si l'élément a pour class "flash_btn", la réponse est NON puisque il a une class "flash_btn_active", c'est marqué au dessus, donc cela ne marchera pas

j'ai surement zappé quelque chose...
;O)
Messages postés
32
Date d'inscription
jeudi 23 septembre 2004
Statut
Membre
Dernière intervention
20 août 2010

A oui desole j'ai fait un mauvais exemple les 4 autres boutons on une class "flash_btn"
















Maxetime
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
14
navré, pas moyen de tester sous IE6
essaies ce code
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<title></title>
<style type="text/css">
.flash_btn_active {
  height : 50px;
  width : 100px;
  border : 1px solid red;
}
.flash_btn {
  height : 50px;
  width : 50px;
  border : 1px solid blue;
}
</style>
<script type="text/javascript">
var iTimer = null;
var current_banner = 1;
//---------------------------
function clickBox( id, img_num){
  if(id.className == "flash_btn"){
    rotate(img_num);
  }
}
//-----------------------
function rotate( img_num){
  clearTimeout(iTimer);

  document.getElementById('btn_flash' + current_banner).className = 'flash_btn';
  document.getElementById('btn_flash' + img_num).className = 'flash_btn_active';

  current_banner = img_num;
  if (img_num >= 5 || img_num <= 0) {
    img_num = 1;
  } else {
    img_num++;
  }

  iTimer = setTimeout(function () {
    rotate(img_num)
  }, 1000);
}
</script>
</head>
















</html>
si cela fonctionne c'est un problème avec la librairie utilisée

;O)
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
14
penses à mettre ta réponse en Réponse acceptée !, cela peut intéresser du monde...

;O)