2012-04-12 6 views
0

Ich habe eine div, die ich dynamisch mit jQuery ersetze.CSS-Stil nicht auf Inhalt mit jQuery ersetzt

ich etwas wie folgt aus:

$.get(url, function(result){ 
    $("#myDiv").replaceWith($(result)); 
} 

Der Antrag wird korrekt und das Markup ist ohne Probleme geladen, aber auch wenn der Inhalt von der Ajax-Aufruf („return“) zurückgegeben wird, ist genau das gleiche von #myDiv (es enthält ein Element mit der gleichen ID), werden einige der Stile nicht korrekt angewendet.

Das Seltsamste ist, dass mit Chrome, wenn ich richtig mit der falschen Art auf das Element klicken und wählen Sie „Inspect Element“, wird der Stil ganz gut geladen.

Dies funktioniert ordnungsgemäß auf IE8.

Irgendeine Idee, was kann das auf Chrome verursachen?

Dank

+0

Sie meinen, dass Ihr Stylesheet das Element nach ID nachschlägt? Sie können versuchen, die Stile über die Klasse anzugeben und sicher zu sein, dass Sie die Klasse zu Ihrem Ergebnis hinzufügen. – veeTrain

Antwort

0

Sind Sie die jQuery-Funktion removeAttr ('Stil') überall mit? Es ist dafür bekannt, dass es manchmal Probleme mit Chrome oder anderen Webkit-Browsern gibt. Siehe http://bugs.jquery.com/ticket/9699

+0

Nein, keine Stiländerung von js überhaupt – willvv

0

Die DOM-Selektoren von Chrome sind viel strenger als die von IE8.

Ich würde vorschlagen, das Element nach Klasse Targeting anstatt ID, auch wenn es auf dieses Element eindeutig ist.

+0

Versucht dies, aber es hat das gleiche Verhalten – willvv

1

Es klingt wie das Neuzeichnen nicht auslöst. Sie könnten versuchen, eine Stiländerung nach dem Austausch wie folgt zu erzwingen:

$(some_selector_in_the_result).css('display','block'); 
1

Eigentlich habe ich gerade eine Lösung gefunden.

Das Element, das korrekt war ein div mit einer absoluten Position nicht gestylt wurde. nur die untere Position

ich einstellen, aber nicht mit dem linken (der 0 war).

ich die links in der CSS auf 0 explizit festgelegt und jetzt sieht es gut.

Anscheinend war die Standardposition aus irgendeinem Grund in Chrome anders.