2009-09-22 6 views
2

J'ai trouvé des questions et des réponses similaires, mais j'ai peur d'être un peu perdu. Je veux juste un ensemble de liens qui ajouteront de la classe au corps pour changer l'image de fond. Je ne comprends que comment utiliser la propriété addClass sur l'élément en cours de clic, mais je ne sais pas comment l'obtenir pour ajouter une classe à un autre div. Merci pour les pointeurs.Changer l'image de fond avec jQuery

Répondre

4

A l'intérieur de l'événement click de l'élément, vous pouvez utiliser n'importe quel sélecteur pour manipuler le DOM. Dans ce cas, j'attache un événement click à toutes les ancres de la page. Quand une ancre est cliquée, j'ajoute une classe à l'élément body de la page. Le retour false s'assure que le navigateur ne suit pas l'href de l'ancre.

$("a").click(function(){ 
    $("body").addClass("CLASS TO ADD"); 
    return false; 
}); 
+0

Merci pour la réponse .. cela semble que cela devrait fonctionner mais pas aller pour moi .. peut-être c'est comment j'utilise mon CSS? corps {margin: 0px;} .class1 {background: url (../ images/sprays.jpg) répétition;} $ ("a.bd1") cliquez sur (function() { $ (». body "). addClass (". class1 "); return false; Zac

+0

' addClass' prend un nom de classe, pas un sélecteur CSS. Supprimer le '.' de l'appel à' addClass' et cela devrait fonctionner correctement – SLaks

+0

SLaks est correct, vous devez utiliser $ ("body"). AddClass ("class1") sans la période car il ne prend pas un sélecteur –

1

Vous pouvez le faire comme ceci:

$ ("div") addClass (le "yourclassname");.

3

addClass Utilisation()

$("#your_linkID").click(function(){ 
    $("#other_div").addClass("CLASS TO ADD"); 
}); 

ou en utilisant la fonction css()

$("#selector_link").click(function(){ 
    $("#target_div").css({ 'background-image': 'url(/url-to-image.jpg)'}); 
}); 
+2

La syntaxe de votre appel css est incorrecte. ou changez-le en backgroundImage.En outre, l'URL de l'image doit être enveloppée avec url() comme "url ('/ url-to-image.jpg')" –

+0

merci. C'était une réponse rapide. –

1

Vous pouvez appeler la méthode addClass sur un objet jQuery.

Par conséquent, vous pouvez utiliser la méthode $ pour créer un nouvel objet jQuery dans votre gestionnaire d'événements, comme ceci:

$("a.bd1").click(function(e) { 
    $("body").addClass("class1"); 
    return false; 
}); 

Pour plus d'informations sur la façon de sélectionner différents éléments en utilisant jQuery, lisez le documentation. Notez que addClass prend un nom de classe, pas un sélecteur CSS, donc vous devez ajouter un . à son paramètre.

+0

grand merci .. j'ajoutais une classe comme ".class1" plutôt que "class1" était mon problème – Zac

Questions connexes