Modifier les propriétés CSS sur cliquez sur
Je suis en train de modifier le CSS d'un élément sur un autre élément. J'ai beaucoup cherché mais rien ne fonctionne parfaitement. Actuellement, je suis en utilisant le code ci-dessous, mais il ne fonctionne pas. Quelqu'un peut-il me dire ce que j'ai raté?
<div id="foo">hello world!</div>
<img src="zoom.png" onclick="myFunction()" />
function myFunction() {
document.getElementById('foo').style.cssText = 'background-color: red; color: white; font-size: 44px';
}
- Pourquoi n'êtes-vous pas simplement définir une nouvelle classe et avons les styles dans une feuille de style?
- Quel navigateur êtes-vous tester dans les? Existe-il des erreurs dans le JS console?
- Utiliser jQuery :), il est plus facile
- je suis d'essayer sur le violon, juste pour lancer ce script simple
- je pense trop.. pouvez-vous me guider tout lien s'il vous plaît
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, à l'aide de
on*
attributs à ajouter des gestionnaires d'événements est un très désuet façon de réaliser ce que vous voulez. Comme vous l'avez étiqueté à votre question avec jQuery, voici un jQuery mise en œuvre:La méthode la plus efficace est de mettre ces styles dans une classe, puis ajouter la classe onclick, comme ceci:
JS:
CSS:
HTML:
myFunction()
n'est pas déclaré dans le champ d'application de laonclick
attribut event, c'est à dire. pas dans lewindow
, mais qui ne serait qu'une hypothèseEssayez ceci:
CSS
HTML
Javascript
Avec jquery, vous pouvez le faire comme:
cela s'applique pour tous les
img
balises, vous devez définir unid
attribut, commeimage
et puis:Dans votre code, vous n'êtes pas à l'aide de jquery, donc, si vous voulez l'utiliser, yo besoin de quelque chose comme...
http://api.jquery.com/css/
Autre façon, si vous n'êtes pas à l'aide de jquery, vous devez faire ...
JS
Essayez ceci:
Ce code semble fonctionner correctement (voir ce jsfiddle). Votre javascript est défini avant votre corps?
Lorsque le navigateur lit
onclick="myFunction()"
il doit savoir ce quemyFunction
est.