Utilisation de jQuery pour Ajouter un Attribut de Classe, les images, etc. sur la Page?
Li'l Aider? Toutes mes excuses à l'avance à cause de mon jQuery.statut de débutant, mais je suis de dessin vierge et à propos d'idées sur pourquoi cela ne fonctionne pas. Peut-être que quelqu'un ici peut voir quelque chose que je ne suis pas? Je serais sûrement apprécier l'aide.
La Question
Cette page web a plusieurs images (aussi paragraphes, etc.) que je veux ajouter une classe. Ils n'ont pas actuellement une classe.
Pourquoi je veux Ajouter une Classe
Je veux utiliser CSS3 pour cible la classe et le style rien qu'a elle. Plus spécifiquement, cela va être une pop-dans le menu et je voudrais régler l'opacité de il et animer son entrée & quitter.
Comment je vais tenter de faire Ce
<script type="text/javascript" src="jquery-1.7.2.min.js"></script>
<script type="text/javascript">
$("document").ready(function() {
$("img").addClass("menumain");
alert("Here I am!"); //This alert will go when I figure this out, I just added it to see if it pops up (it does).
});
</script>
J'ai Aussi Essayé de Cette Façon (Remarque: Toutes mes images contiennent la chaîne "menumain-" dans le nom du fichier)
<script type="text/javascript" src="../jquery-1.7.2.min.js"></script>
<script type="text/javascript">
$("document").ready(function() {
$("img[src*=menumain-]").attr({class:"menumain"});
});
</script>
Donc Ce qui se Passe Quand je l'ai Essayer?
Rien. Je charge la page, (que l'alerte ne pop up, je rejette) puis développez le corps à l'aide de firebug et /ou Safari outils de développement, etc. et de forage vers le bas pour les images sur la page. Je vois des attributs de l'image, mais je ne vois pas où la classe a été ajoutée, beaucoup moins défini comme "menumain", qui est ce que je veux, la classe à.
Partie de Pourquoi C'est me rend Fou
J'ai un autre script jQuery sur la même page qui fait la même chose. Il ajoute des attributs, et non pas un attribut de Classe, mais d'autres attributs de la Div principale qui entoure l'ensemble de la page. Je n'ai pas de problèmes avec cette fonction jQuery, donc je ne vois pas pourquoi cela ne fonctionne pas.
Pourquoi ne serait-il Pas de Travail
J'ai vérifié la syntaxe 9 façons à partir de dimanche, mais je ne vois pas quelque chose de mal. Toujours, vous savez comment la preuve de la lecture de la syntaxe.
Deuxièmement, les images que je suis ciblage (je vais aussi essayer d'obtenir le texte et les boutons dans le menu marqués dans cette même classe) sont enterrés dans les Divs comme ceci:
<div id="image194" style="visibility: inherit;">
<a name="image194anc">
<img width="317" height="564" border="0" alt="menumain-bg-317x564" src="images/menumain-bg-317x564.png" name="image194Img">
</a>
</div>
Je suis en supposant que mon ciblage de $("img[src=menumain-]")* va trouver ces images si elles sont dans des Divs ou pas, mais peut-être que je me trompe?
Une Chose De Plus
Cette "page web" est généré par une application appelée Lectora par Trivantis. C'est un WYSIWYG de création de l'outil pour les concepteurs pédagogiques (qui ne sont PAS des développeurs de sites web) qui créent sur la formation en ligne. Il n'est donc pas comme si je suis la création de cette toute chose dans DreamWeaver ou pouvez modifier l'ensemble de l'approche de la conception web. Mais je devrais être en mesure de pop d'une classe sur un ensemble d'éléments de page et de les cibler avec des CSS, non?
S'il vous plaît dites-moi si vous voyez quelque chose de mal. Voici une version de la page --> http://bit.ly/Rijnl8
<script type="text/javascript">
balises à l'intérieur de votre .fichier js. Vous n'avez pas besoin de ces balises script dans le set-up-touch-events-header.js
fichier - C'est ce qui provoque une erreurIl apparaît dans votre exemple, que les images ne sont pas chargées par le temps de la
$(document).ready(...)
exécute. Pause le script sur un point de rupture dans le chrome débogueur affiche n'en sont pas .les balises img à ce point dans le temps. Votre syntaxe semble correct.Vous n'avez pas besoin de regarder pour les erreurs de syntaxe. La console dans le navigateur va avoir les messages d'erreur à partir de vos scripts, si il y a une erreur de syntaxe, il dira ce fichier et la ligne.
Votre lien est cassé.
OriginalL'auteur BozoExplosion | 2012-08-03
Vous devez vous connecter pour publier un commentaire.
jQuery a une méthode intégrée pour l'ajout de classes.
http://api.jquery.com/addClass
Fondamentalement. Son vrai problème va être quelque part d'autre, comme si oui ou non les images existent à ce point. C'est probablement ce qui aurait dû être un commentaire.
De sorte que les images, puisqu'elles font partie d'un "pop-up" (c'est à dire le menu n'est pas visible jusqu'à ce qu'un bouton est cliqué, puis les éléments qui forment le menu comme les images et le texte tout simplement "montrer"), ils ne sont pas visibles sur la page lorsque la page se charge. Ainsi, le $(document).prêt de fonction ne déclenchent pas le jQuery, parce que les images "ne sont pas là." Et lorsque le menu s'affiche, rien ne déclenche le script. Est qui?
Le
$(document).ready
œuvres, cependant$("img[src*=menumain-]")
ne trouve pas toutes les images, car ils ne sont pas attachés au document est ma conjecture. Je n'ai pas été sur le lien que vous avez fourni pour confirmer.Chacune de ces images est dans son propre Div. Je suppose qu'il est possible de cibler la Div comme dans "$(Trouvez-moi tous les Divs qui contiennent une image qui a une source qui, elle, contient la chaîne "menumain-"). Tous les conseils sur la syntaxe?
OriginalL'auteur Kevin B
Vous pourriez mettre les images que vous voulez de style à l'intérieur du contenant de la vrd, puis faire
alors dans la classe, l'utilisation
de style de toutes les images à l'intérieur de ces conteneurs. C'est une solution, mais cela devrait résoudre votre problème! Aussi, en HTML5, l'utilisation de
type="text/javascript"
dans le<script>
balises n'est plus nécessaire.OriginalL'auteur TDimaline
Juste eu à le faire dans une application que j'ai construit. Vous êtes en train de faire la bonne chose, mais vous n'allez pas assez loin. Ajouter une valeur lorsque vous utilisez l' .fonction attr:
Pouvez-vous essayer d'ajouter la classe après les images sont appelés? Qui est, tout ce gestionnaire d'événement est de "montrer" les images, utiliser une fonction de rappel pour ajouter la classe. Il va arriver assez vite pour que l'utilisateur ne sera pas le remarquer.
OriginalL'auteur Jeff Fabiny
Cela semble être ce que vous voulez http://jsfiddle.net/dstarh/Kxfg7/1/
Ajouter une classe à chaque image sur la page
OriginalL'auteur dstarh
Dans Lectora 11, vous pouvez ajouter des classes d'objets. Sélectionnez l'objet(s) > Propriétés tab > Apparence section > Cliquez sur le petite flèche dans le coin.
OriginalL'auteur Sergey Snegirev