it-swarm.com.de

wie man eine Änderung der Dokumentgröße in jquery erkennt

nehmen wir also an, ein Klick auf etwas würde dazu führen, dass ein neuer Inhalt auf den Bildschirm geladen wird, wodurch sich die Höhe des Dokuments ändert. Während zuvor keine Bildlaufleisten vorhanden waren, gibt es jetzt tatsächlich Bildlaufleisten.

wie erkenne ich so etwas mit jquery?

das Binden des Größenänderungsereignisses an das Fenster erkennt nur die Größenänderung des Fensters, während das Binden in das Dokument nicht funktioniert

15
kamikaze_pilot

Update:
Bitte verwenden Sie nicht das Ereignis DOMSubtreeModified. Es ist alt, veraltet und wird von Browsern nicht gut unterstützt. In 99,9% der Fälle gibt es ein anderes Ereignis, das Sie anhören können. Höchstwahrscheinlich sind Sie eine dieser Personen, die jQuery verwenden und AJAX erledigen. Schauen Sie sich also ihre AJAX -Dokumente an .


Diese sind alle verfügbaren Ereignisse. Sie müssten $(document).bind('DOMSubtreeModified', function() { ... }); erkennen und nach einer Dimensionsänderung zum vorherigen Brand suchen.

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

Dieses Ereignis wird ausgelöst jedes Mal alles wird an das DOM gesendet. Deshalb wird Ihren Browser verlangsamen.

Wir sollten eine bessere Alternative bekommen. Könnten Sie uns bitte weitere Informationen zu Ihrem Szenario geben?

18
buschtoens

Hier ist die Lösung.

// 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