2013-02-08 3 views
0

J'ai un bouton pour sélectionner des images, son état par défaut est "Sélectionner une image", après qu'une image est sélectionnée, le innerHTML du bouton est changé pour le nom de fichier. Maintenant, ce que je veux faire, c'est que si je passe la souris sur le bouton alors qu'il ne dit pas "Sélectionner l'image", je veux qu'il dise "Sélectionnez une image différente", puis sur "Je veux revenir à ce que c'était avant (le nom de fichier de l'image).Changer le texte sur le vol stationnaire ne fonctionne pas

J'ai rassemblé les éléments suivants, mais cela ne fonctionne pas ... Je suis ouvert aux options JS et jQuery.

window.addEventListener('load', function(event) { 
    var btn = document.getElementById('file-button'); 
    if (btn.innerHTML !== "Select Image") { 
     var temp = btn.innerHTML; 
     btn.onmouseover = btn.innerHTML = "Select a different image"; 
     btn.onmouseout = btn.innerHTML = temp; 
    } 
}); 

SOLUTION - grâce à Ian

window.addEventListener('load', function(event) { 
    var btn = document.getElementById('file-button'); 
    btn.onmouseover = function() { 
     if (this.innerHTML !== "Select Image") { 
      var temp = this.innerHTML; 
      this.innerHTML = "Select a different image"; 
     } 
    }; 

    btn.onmouseout = function() { 
     if (this.innerHTML !== "Select Image") { 
      this.innerHTML = temp; 
     } 
    }; 
}); 

Répondre

0

Essayez ceci:

window.addEventListener('load', function(event) { 
    var btn = document.getElementById('file-button'); 
    if (btn.innerHTML !== "Select Image") { 
     var temp = btn.innerHTML; 
     btn.onmouseover = function() { 
      this.innerHTML = "Select a different image"; 
     }; 

     btn.onmouseout = function() { 
      this.innerHTML = temp; 
     }; 
    } 
}); 

Vous devez définir les propriétés .onmouseover et .onmouseout comme fonctions. Ensuite, vous pouvez aussi bien référencer le bouton avec this, au lieu de btn.

MISE À JOUR:

Je pense que vous voulez réorganiser votre logique à quelque chose comme ceci:

window.addEventListener('load', function(event) { 
    var btn = document.getElementById('file-button'); 
    var temp = btn.innerHTML; 
    btn.onmouseover = function() { 
     if (this.innerHTML !== "Select Image") { 
      temp = this.innerHTML; 
      this.innerHTML = "Select a different image"; 
     } 
    }; 

    btn.onmouseout = function() { 
     if (this.innerHTML !== "Select Image") { 
      this.innerHTML = temp; 
     } 
    }; 
}); 

http://jsfiddle.net/3WkXp/

+0

J'ai essayé dans un codepen et il fonctionne, mais quand je demande! il ne mine pas:/et aucune erreur n'apparaît dans la console. Hmm – ramo

+0

@ user1994446 Je pense que vous devez repenser votre logique d'origine. Cela va lier correctement les événements et faire ce que je pense que vous cherchez. Mais je ne suis pas sûr que votre déclaration 'if' soit correcte. Fondamentalement, votre code dit "Au chargement, si le innerHTML du bouton n'est PAS" Select Image ", alors UNIQUEMENT liez ces événements Donc êtes-vous sûr que le innerHTML de votre bouton n'est PAS" Select Image "? ? Quel est exactement le "bouton"? '

+0

J'ai '

Select Image
' lorsque l'image est sélectionnée, il me montre le nom du fichier et la taille, exemple "myimage.png "(80 Ko.) Lorsque je souris le bouton/div il ne change pas, et aucune erreur ne se trouve dans la console – ramo

0

Puisque vous utilisez jQuery, il peut être écrit comme

$(function(){ 
    var temp = $('#file-button').html(); 
    if (temp !== "Select Image") { 
     $('#file-button').hover(function(){ 
      $(this).html('Select a different image') 
     },function(){ 
      $(this).html(temp) 
     }); 
    } 
}) 

D emo: Fiddle

+0

Même chose avec celui-ci, je ne reçois pas d'erreurs, mais cela ne fonctionne toujours pas. – ramo

+0

avez-vous ajouté jquery –

+0

oui, et cela fonctionne bien, pourrait-il être quelque chose écrase ce que ce script essaie de changer? – ramo

-1

essayez celui-ci

vous êtes réellement obligatoire l'événement auditeurs seulement quand le code html de BTN == Select Image

var temp; 
$("#file-button").mouseover(function() { 
    if ($(this).html() !== "Select Image") 
    { 
     temp = $(this).html(); 
     $(this).html("Select a different Image"); 
    } 
}).mouseout(function() { 
    if ($(this).html() === "Select a different Image") 
     $(this).html(temp); 
}); 
+0

quel est le problème avec cette réponse? pourquoi downvote? – Uttara

Questions connexes