JQuery

De Banane Atomic
Révision datée du 16 février 2021 à 10:16 par Nicolas (discussion | contributions) (→‎Evenements)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigationAller à la recherche

Généralités

jQuery est un framework JavaScript.

Installation

Html.svg
<head>
    <!-- utiliser la version locale -->
    <script type="text/javascript" src="jquery.js"></script>

    <!-- ou télécharger jquery au chargement de la page -->
    <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
  • utiliser la balise fermante et non la forme contractée />
  • ne pas ajouter de code JavaScript entre les balises

Sélecteurs

Javascript.svg
// sélectionne l’élément avec l'id "id"
$("#id")
// sélectionne tous les éléments avec la classe "class"
$(".class")

// sélectionne tous les éléments de type "div"
$("div")
// sélectionne tous les éléments de type "a" ayant un parent direct de type "div"
$("div > a")

// sélectionne l’élément suivant de même niveau que l’élément avec l'id "id"
$("#id").next()

// sélectionne l’élément parent de l’élément avec l'id "id"
$("#id").parent()

// sélectionne tous les éléments de même niveau que l’élément avec l'id "id"
$("#id").siblings()
Équivalent de document.getElementById("id") : $("#id")[0]

Obtenir ou modifier le contenu d'un balise (InnerHtml)

Javascript.svg
var contenu = $("#id").html();

$("#id").html(NouveauContenu);

html

Obtenir ou modifier le style

Javascript.svg
var backgroundColor = $("#id").css("background-color");

$("#id").css("background-color", "black");
Shorthand CSS properties (e.g. margin, background, border) are not supported.
For example, if you want to retrieve the rendered margin, use:margin-top or margin-right

css

Obtenir ou modifier un attribut

Javascript.svg
var attribut_value = $('#id').attr('nom de l attribut');

// équivalent
$('#id').attr('value', 'nouvelle valeur');
$('#id').val('nouvelle valeur');

Manipulate classes

Js.svg
if ($('#id').hasClass('myClass'))
{
    $('#id').removeClass('myClass')
}
else
{
    $('#id').addClass('myClass')
}

Document properties

Js.svg
$(document).prop('title', 'My Title !');

Evenements

Javascript.svg
// associe la méthode MonHandler à l’événement mousemove
// écrase toutes les autres méthodes qui étaient associées à cet événement
$(document).mousemove(MonHandler);

// associe la méthode MonHandler à l’événement mousemove
// tout en conservant les méthodes précédement associées à cet événement
$(document).bind("mousemove", MonHandler);

// supprime toutes les méthodes qui étaient associées à l’événement mousemove
$(document).unbind("mousemove");

// supprime l'association entre la méthode MonHandler et l’événement mousemove
// tout en conservant les méthodes précédement associées à cet événement
$(document).unbind("mousemove", MonHandler);

bind

Evenement ready

Permet de déclencher l'exécution du code JavaScript une fois que la page web a été entièrement chargée.

Javascript.svg
$(function() {
   // do stuff when DOM is ready
});

// équivalent à 
$(document).ready(function() { ... });

Evenement click

Permet de déclencher l'exécution du code JavaScript une fois que l'élément a été cliqué.

Javascript.svg
$("#id").click(function() {
    // désigne la balise id 
    $(this)
});

Simuler un click

Javascript.svg
// clique sur une balise a
$('.path > .to > .element > a')[0].click();

mouseover / mouseleave

Javascript.svg
// quand la sourie passe sur id, on affiche id2
$("#id").mouseover(function () {
    $("#id2").fadeIn();
})

// quand la sourie quitte id, on cache id2
$("#id").mouseleave(function () {
    $("#id2").fadeOut();
})

Ajouter / supprimer une balise

Javascript.svg
// suppression du noeud id
$("#id").remove();

// detach fonctionne comme remove mais conserve les données associées à l'élément supprimé
// utilise si l'on souhaite réinsérer l'élément
id = $("#id").detach();

// ajout d'id dans main ou déplacement s'il existe déjà dans le DOM
id.appendTo($("#main"));
// autre écriture
$("#main").append(id);

append
appendTo
remove
detach

Tableau / Array

Javascript.svg
var tableau = ["un", "deux", "trois"];

// map: projection de tableau dans nouveauTableau
var nouveauTableau = $.map(tableau, function(element, index) {
    return index + ' - ' + element;
});

// each: parcourt de tableau
$.each(tableau, function(index, value) {
    console.log(index + ": " + value);
});

// teste si tableau contient valeur
if ($.inArray("valeur", tableau ) > -1)
// inArray retourne l'index de l'élément, sinon -1

var first = tableau.shift();  // extrait la première valeur du tableau
var last = tableau.pop();  // extrait la dernière valeur du tableau

// tableau contenant toutes les balises input
inputArray = $('input').get()

// pour toutes les balises input
$('input').each(function(index) {
    // change l'attribut value avec la valeur de tableau à l'index correspondant
    $(this).attr('value', tableau[index]);
});

Charger un autre fichier Javascript

Javascript.svg
// équivaut à l'ajout d'une balise script dans le header
$.getScript("autre_fichier.js");

getScript
Javascript

Exemples

Afficher la position de la souris

Html.svg
<head>
<script type="text/javascript" src="jquery.js"></script>

<script type="text/javascript">

function AffichePos(event) {
	$("#posX").html(event.pageX);
	$("#posY").html(event.pageY);
}

$(document).ready(function() {
	$(document).bind("mousemove", AffichePos);
});

</script>
</head>

<body>
X : <div id=posX>0</div><br>
Y : <div id=posY>0</div><br>
</body>