2009-11-18 6 views
1

je le code suivant et il fonctionne correctement dans FF et IE8, mais échoue dans tout le monde IE 7 ont une idée ou piraterjquery jeu largeur div échoue dans IE7

if ($("#midRight:contains('Quick Links')").length == 0) { 
    $("#midCenter").css({'width':'298px'}); 
} 

html est basique

<div id="midRight"> 
bunch of text 
</div> 

le css de départ est

#midRight {width:440px;} 

erreur javascript IE7 est « l'objet ne prend pas en charge cette propriété ou méthode. BTW si je jette une bière rt AVANT le changement de largeur ça marche bien. Si je déplace l'alerte après le changement de largeur, il ne se déclenche jamais, donc au moins je sais que l'instruction conditionnelle fonctionne correctement dans IE7, mais pas le changement de largeur.

+0

S'il vous plaît ajouter plus de détails tels que: code HTML, que voulez-vous dire par échoue? –

+0

Quel bit échoue - le if() ou le réglage de la largeur? – Greg

+1

Vous avez besoin de plus de code HTML et de CSS pour #midCenter tel qu'il était avant la modification de jQuery. – a432511

Répondre

5
$("#midCenter").css({width:298}); 
+0

Soit ceci, soit $ ("# midCenter"). Css ('width,' 298px '); – powtac

+0

très étrange je pensais que j'avais essayé toutes les combinaisons possibles, mais s'avère enlever les citations et le px de la valeur résolu le problème. $ ("# midCenter"). Css ({'width': 298}); – Lance

0

Cela peut être un bug dans la façon dont IE7 gère la définition de la largeur avec CSS. Cela fonctionne-t-il mieux si vous définissez la largeur directement?

if ($("#midRight:contains('Quick Links')").length == 0) { 
    $("#midCenter").width(298); 
} 
0

Attendez-vous que le chargement du DOM se termine? Essayez ceci:

$(function() 
{ 
    if ($("#midRight:contains('Quick Links')").length == 0) 
     $("#midCenter").css({'width': 298}); 
});