web-dev-qa-db-fra.com

comment détecter le changement de taille de document dans jQuery

supposons donc qu'en cliquant sur un élément, un nouveau contenu soit chargé à l'écran, la hauteur du document change alors qu'autrefois, il n'y avait pas de barre de défilement, il y a maintenant des barres de défilement ...

comment puis-je détecter quelque chose comme ça se passe en utilisant jquery

lier un événement de redimensionnement à une fenêtre ne détecte que le redimensionnement de la fenêtre alors que sa liaison au document ne fonctionne pas

15
kamikaze_pilot

Mise à jour:
Veuillez ne pas utiliser l'événement DOMSubtreeModified. Il est vieux, obsolète et mal supporté par les navigateurs. Dans 99,9% des cas, vous pouvez écouter un autre événement. Vous êtes probablement l'une de ces personnes qui utilise jQuery et qui fait quelques AJAX, alors jetez un coup d'œil à leur AJAX docs .


Ces sont tous les événements disponibles. Vous devez détecter $(document).bind('DOMSubtreeModified', function() { ... }); et vérifier si la dimension a changé par rapport au tir précédent.

var height = $(this).height(),
    width  = $(this).width();
$(document).bind('DOMSubtreeModified', function() {
    if($(this).height() != height || $(this).width() != width) {
        recalibrate();
    }
});

Cet événement déclenche tous les heure rien est appliqué au DOM. Par conséquent, il va ralentir votre navigateur.

Nous devrions avoir une meilleure alternative. Pourriez-vous s'il vous plaît nous donner plus d'informations sur votre scénario?

18
buschtoens

Voici la solution.

// ajdust margins when page size changes (ie rotate mobile device)
$(window).resize(function() {
  // Do something more useful
  console.log('doc height is ' + $(window).height());
});
0
Nathan Sharfi