2010-01-19 12 views
7

Je suis nouveau sur JavaScript. J'ai développé une page utilisant JavaScript de telle sorte que lorsque je sélectionne une couleur, elle est appliquée à la page entière en arrière-plan.Changer la couleur du texte onclick

Je veux développer une page où je ne peux changer que la couleur du texte. Il devrait être changé (de rouge à vert ou quelque chose comme ça), mais la page ne devrait pas être rafraîchie, et seulement le contenu sélectionné ou la couleur du texte devrait être changé.

Quelqu'un peut-il m'aider s'il vous plaît dans ceci. Des idées de comment le développer? Merci d'avance.

Répondre

4

Une réécriture de la réponse par Sarfraz serait quelque chose comme ça, je pense:

<script> 

    document.getElementById('change').onclick = changeColor; 

    function changeColor() { 
     document.body.style.color = "purple"; 
     return false; 
    } 

</script> 

Vous souhaitez soit devez mettre ce script à la en bas de votre page, juste avant la balise de fermeture du corps, ou mettez l'assignation du handler dans une fonction appelée onload - ou si vous utilisez jQuery, il y a le très élégant

Notez que lorsque vous affectez des gestionnaires d'événements de cette manière, la fonctionnalité est supprimée de votre code HTML. Notez également que vous le définissez égal au nom de la fonction - no(). Si vous avez fait onclick = myFunc(); la fonction s'exécuterait réellement lorsque le gestionnaire est en cours de définition.

Et je suis curieux - vous en saviez assez pour changer la couleur de l'arrière-plan, mais pas la couleur du texte? étrange :)

+0

poids im essayant de faire est de changer la couleur du texte en appelant les pages Css .. im problème auquel sont confrontés dans ce ..Je avons créé trois différentes Css pages .. mais quand cliquez sur la première page .css que j'ai appelé s'affiche mais nt others.i ve appelé tous les trois fichiers .css aussi .. – Patel

+0

@patel Ce serait très utile d'inclure dans la question d'origine. Vous devriez le modifier pour inclure ce petit peu important. –

4

Faire quelque chose comme ceci:

<script> 
function changeColor(id) 
{ 
    document.getElementById(id).style.color = "#ff0000"; // forecolor 
    document.getElementById(id).style.backgroundColor = "#ff0000"; // backcolor 
} 
</script> 

<div id="myid">Hello There !!</div> 

<a href="#" onclick="changeColor('myid'); return false;">Change Color</a> 
+0

-1 Pour une utilisation inefficace de 'document.getElementById (id)' et enregistrement d'un événement problématique –

+0

@Justin: Ce serait génial si vous pouviez expliquer ce qui est inefficace là-bas? Ce serait génial si je pouvais apprendre. Tous les liens que vous pouvez fournir s'il vous plaît? – Sarfraz

+0

Il est préférable de ne pas parcourir le DOM autant que possible, donc vous devrez faire le moins d'appels possible à des méthodes comme 'document.getElementById'. En ce qui concerne l'enregistrement des événements, il est généralement considéré comme une mauvaise forme pour mélanger présentation et logique. Plus peut être lu à ce sujet ici: http://www.quirksmode.org/js/events_early.html –

Questions connexes