2010-07-02 3 views
0

J'ai une page HTML générée par JavaScript (JQuery). Il utilise JQGrid. C'est the source de la page.Utilisation des fonctions JQuery sur HTML produites par JQuery?

je tente de changer l'une des largeurs et vérifier sa largeur comme ceci:

var width = window.screen.availWidth; //1280 
$('#gbox_grid').css('width', width); 
alert($('#gbox_grid').width()); //alerts a null 

Mais l'alerte retourne une valeur nulle? L'identifiant est correct et l'élément est là (via Firbug). J'ai également préparé ce document intérieur.

Merci à tous pour votre aide.

+1

Qu'est-ce qui se passe lorsque vous définissez via '.width()'? Comme ceci: '$ ('# gbox_grid'). Width (width))' –

+0

Si j'attends que la page se charge et que les données apparaissent dans la grille puis mon code ci-dessus à une fonction et exécutez-le via un clic travaux. Peut-être que je dois attendre la demande AJAX? Mais ses seules données? Peut-être qu'il rend après que les données sont reçues et les éléments deviennent disponibles alors plutôt que sur prêt. – Abs

+0

J'ai essayé le même code donné par vous.Il fonctionne bien à ma fin.Vous pourriez manquer quelque chose dans votre code. –

Répondre

1

Sur la base de votre commentaire, oui, vous devez exécuter ce après votre appel AJAX charge l'élément (dans votre success ou complete rappel), sinon il ne sera pas là pour le sélecteur à trouver.

donc ceci:

$('#gbox_grid') 

ne trouvera aucun élément pour exécuter .css() (ou se .width() sur l'autre). En outre, vous pouvez utiliser .width(newWidth) pour définir la largeur et, comme celui-ci:

$('#gbox_grid').width(width); 
+0

exactement, je viens d'utiliser l'événement loadComplete. – Abs

Questions connexes