jQuery .width() gibt falschen Wert aus

tsbmusic

Erfahrenes Mitglied
Moin,

ich habe ein Problem mit einem jQuery Plugin an dem ich arbeite. Wenn ich versuche die Breite eines Elements mit .width() zu ermitteln wird immer 0 ausgegeben obwohl es eine Größe hat (die nicht 0 ist). Wenn ich dem Element wie unten noch per .css() die Breite von 100% gebe, wird in der Konsole 100 angegeben, allerdings ist die Breite über 1000px.

Code:
var wrapper = $('<div class="wrapper" />').css({
  display: 'block',
  visibility: 'visible',
  width: '100%',
  overflow: 'auto'
});
                 
e.wrap(wrapper);
console.log(wrapper.width());

Das Plugin wird erst ausgeführt wenn das Dokument geladen ist (also in $(document).ready).

Hat jemand eine Idee woran das liegen kann, oder übersehe ich einfach etwas?

Grüße
tsbmusic
 
Ich will das Element nicht selektieren sondern es wird dynamisch generiert und ins DOM eingefügt.
 
Hi,

Problem dürfte der Zeitpunkt sein, in dem das neue Element in den DOM eingehängt wird und die Breite bestimmt wird. Eventuell hilft es schon, dass Element erst einzuhängen, dann zu "wrappen" und anschließend die Dimension zu bestimmen.
Javascript:
var e = $('#wrap'),
    wrapper = $('<div class="wrapper" />').css({
        overflow: 'auto',
        visibility: 'visible',
        width: '100%',
        display: 'block'
    });

wrapper.insertBefore(e.wrap(wrapper));

console.log(wrapper.width());
Ciao
Quaese
 
Hi,

Problem dürfte der Zeitpunkt sein, in dem das neue Element in den DOM eingehängt wird und die Breite bestimmt wird. Eventuell hilft es schon, dass Element erst einzuhängen, dann zu "wrappen" und anschließend die Dimension zu bestimmen.
Javascript:
var e = $('#wrap'),
    wrapper = $('<div class="wrapper" />').css({
        overflow: 'auto',
        visibility: 'visible',
        width: '100%',
        display: 'block'
    });

wrapper.insertBefore(e.wrap(wrapper));

console.log(wrapper.width());
Ciao
Quaese
Klein, aber fein - danke dafür :)

jQuery() akzeptiert nicht nur Selektoren! http://api.jquery.com/jQuery/#jQuery2
Dass ich mit meiner allgemeinen Aussage etwas daneben lag, hab ich selber bemerkt, als plötzlich von einem dynamisch generierten Element die Rede war :p

Und dass es in diesem Anwendungsfall neben meinem vorgeschlagenen Selektor tatsächlich auch mit der HTML-Syntax funktionieren kann, hat @Quaese eindrucksvoll vorgeführt :)
 
Zuletzt bearbeitet:
Zurück