Bug sous ie et firefox, jquery
Résolu
tokie-03
Messages postés
9
Date d'inscription
Statut
Membre
Dernière intervention
-
maka54 Messages postés 698 Date d'inscription Statut Membre Dernière intervention -
maka54 Messages postés 698 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai un petit problème sur mon site, en fait j'ai utilisé des méthodes en jquery pour pouvoir créer des effets, ça marche bien sur chrome mais pas sur firefox et ie.
aidez moi svp, ça fait des heures que j'essaye des trucs mais j'arrive pas du tout :(
une partie du codage :
$('#m1').mouseenter(function(){
document.getElementById('m1').style.cursor='pointer';
if ($("#m1").css('background-image') ==
'url(http://www.*****.fr/test/BTNINSTALLATION.png)'){
$('#cadre1').fadeIn("slow");
}
else{
document.getElementById("m1").style.backgroundImage =
'url("http://www.****.fr/test/BLANC-VERT.png")' ;
$('#cadre1').hide();
}
});
$('#m1').mouseleave(function(){
document.getElementById('m1').style.cursor='pointer';
if($("#m1").css('background-image') ==
'url(http://www.****.fr/test/BTNINSTALLATION.png)'){
document.getElementById("m1").style.backgroundImage =
'url("http://www.****.fr/test/BTNINSTALLATION.png")';
}
else{
document.getElementById("m1").style.backgroundImage = 'url("http://www.****.fr/test/BLANC.png")';
}
});
$('#m1').click( function(){
if ($("#m1").css('background-image') !=
'url(http://www.***.fr/test/BTNINSTALLATION.png)'){
$('#m1').css('background-image',
'url(http://www.****.fr/test/BTNINSTALLATION.png)');
$('#m1').css('color', 'white');
$('#cadre1').css('background-image', 'url(http://www.****.fr/test/INSTALLATION.png)').fadeIn("slow");
}
});
le problème est quand quand je clique sur "m1" ce qui rend le background-image BTNINSTALLATION ensuite j'enlève ma souris ça passe en BLANC c'est à dire le esle de mouseleave alors que logiquement ça doit rester le background-image BTNINSTALLATION
j'ai un petit problème sur mon site, en fait j'ai utilisé des méthodes en jquery pour pouvoir créer des effets, ça marche bien sur chrome mais pas sur firefox et ie.
aidez moi svp, ça fait des heures que j'essaye des trucs mais j'arrive pas du tout :(
une partie du codage :
$('#m1').mouseenter(function(){
document.getElementById('m1').style.cursor='pointer';
if ($("#m1").css('background-image') ==
'url(http://www.*****.fr/test/BTNINSTALLATION.png)'){
$('#cadre1').fadeIn("slow");
}
else{
document.getElementById("m1").style.backgroundImage =
'url("http://www.****.fr/test/BLANC-VERT.png")' ;
$('#cadre1').hide();
}
});
$('#m1').mouseleave(function(){
document.getElementById('m1').style.cursor='pointer';
if($("#m1").css('background-image') ==
'url(http://www.****.fr/test/BTNINSTALLATION.png)'){
document.getElementById("m1").style.backgroundImage =
'url("http://www.****.fr/test/BTNINSTALLATION.png")';
}
else{
document.getElementById("m1").style.backgroundImage = 'url("http://www.****.fr/test/BLANC.png")';
}
});
$('#m1').click( function(){
if ($("#m1").css('background-image') !=
'url(http://www.***.fr/test/BTNINSTALLATION.png)'){
$('#m1').css('background-image',
'url(http://www.****.fr/test/BTNINSTALLATION.png)');
$('#m1').css('color', 'white');
$('#cadre1').css('background-image', 'url(http://www.****.fr/test/INSTALLATION.png)').fadeIn("slow");
}
});
le problème est quand quand je clique sur "m1" ce qui rend le background-image BTNINSTALLATION ensuite j'enlève ma souris ça passe en BLANC c'est à dire le esle de mouseleave alors que logiquement ça doit rester le background-image BTNINSTALLATION
A voir également:
- Bug sous ie et firefox, jquery
- Telecharger firefox - Télécharger - Navigateurs
- Video downloadhelper firefox - Télécharger - Outils pour navigateurs
- Exporter favoris firefox - Guide
- Ie tab firefox - Télécharger - Outils pour navigateurs
- Bug chromecast - Guide
3 réponses
Bonjour
Ajoute un alert ($("#m1").css('background-image')); au début de ton mouseleave. Tu verras ce qu'il y a vraiment, et ça devrait te donner une idée de ce qui cloche dans ton test.
Ajoute un alert ($("#m1").css('background-image')); au début de ton mouseleave. Tu verras ce qu'il y a vraiment, et ça devrait te donner une idée de ce qui cloche dans ton test.
J'ai reproduit ton code pour voir et j'ai eu le même problème.
Je t'avais demandé de mettre un alert ($("#m1").css('background-image')); : l'as-tu vraiment fait ? As-tu vraiment regardé la différence de comportement entre Chrome et FF (je n'ai pas essayé IE)
Chrome affiche
url(http://www.****.fr/test/BTNINSTALLATION.png)
Alors que FF affiche
url("http://www.****.fr/test/BTNINSTALLATION.png")
Il y a des " en plus.
Donc ton test ne convient pas
Modifie tous tes tests :
(attention, quand tu testes !=, il faut mettre && à la place de ||
Je t'avais demandé de mettre un alert ($("#m1").css('background-image')); : l'as-tu vraiment fait ? As-tu vraiment regardé la différence de comportement entre Chrome et FF (je n'ai pas essayé IE)
Chrome affiche
url(http://www.****.fr/test/BTNINSTALLATION.png)
Alors que FF affiche
url("http://www.****.fr/test/BTNINSTALLATION.png")
Il y a des " en plus.
Donc ton test ne convient pas
Modifie tous tes tests :
if(($("#m1").css('background-image') == 'url(http://www.****.fr/test/BTNINSTALLATION.png)')||($("#m1").css('background-image') == 'url("http://www.****.fr/test/BTNINSTALLATION.png")'))
(attention, quand tu testes !=, il faut mettre && à la place de ||
merci beaucoup, alors j'ai tout modifié par ça :
$('#m1').mouseenter(function(){
document.getElementById('m1').style.cursor='pointer';
if ((document.getElementById("m1").style.backgroundImage == 'url("http://www.***.fr/test/BTNINSTALLATION.png")')
||
(document.getElementById("m1").style.backgroundImage == 'url(http://www.***.fr/test/BTNINSTALLATION.png)')){
$('#cadre1').fadeIn("slow");
}else{
//if($("#m1").css('background-image') == 'url(http://www.****.fr/test/BLANC.png)'){
document.getElementById("m1").style.backgroundImage = 'url("http://www.***.fr/test/BLANC-VERT.png")' ;
$('#cadre1').hide();
}
en fait sur chrome il prends le lien sans " " et sur mozilla faut mettre " " dans le lien donc pour faire cela j'ai rajouté une condition avec || et quand je fais mon .click je change le || par &&.
merci bien et bonne journée.
$('#m1').mouseenter(function(){
document.getElementById('m1').style.cursor='pointer';
if ((document.getElementById("m1").style.backgroundImage == 'url("http://www.***.fr/test/BTNINSTALLATION.png")')
||
(document.getElementById("m1").style.backgroundImage == 'url(http://www.***.fr/test/BTNINSTALLATION.png)')){
$('#cadre1').fadeIn("slow");
}else{
//if($("#m1").css('background-image') == 'url(http://www.****.fr/test/BLANC.png)'){
document.getElementById("m1").style.backgroundImage = 'url("http://www.***.fr/test/BLANC-VERT.png")' ;
$('#cadre1').hide();
}
en fait sur chrome il prends le lien sans " " et sur mozilla faut mettre " " dans le lien donc pour faire cela j'ai rajouté une condition avec || et quand je fais mon .click je change le || par &&.
merci bien et bonne journée.
C'est du grand n'importe quoi ce code ....
mouseenter, mouseleave, click .... c'est le merdier, et les tests de background n'en parlons meme pas
Voilà une piste que devrais t'aider
css :
js :
mouseenter, mouseleave, click .... c'est le merdier, et les tests de background n'en parlons meme pas
Voilà une piste que devrais t'aider
css :
#m1{ background-image:url(image par défaut); } #m1:hover{ background-image:url(image lorsque le pointeur est sur l'element); } #m1.click{ background-image:url(image lorsque l'element a été cliqué); } #m1.click:hover{ background-image:url(image lorsque l'element a été cliqué et que le pointeur est sur l'element); }
js :
$('#m1').click( function(){ $(this).addClass('click'); });
n'importe quoi, quand c'est BLANC-VERT ça me mets BLANC-VERT et quand c'est BTNINSATALLATION ça me mets bien BTNINSTALLATION (aprés avoir cliqué) et juste après ce message ça le change en BLANC :/
Alors que dans le onleave, tu utilises une méthode complètement différente :
Pas sûr que ce soit équivalent, mais comme je te l'ai dit, je ne suis pas expert dans ce domaine.