2013-09-06 12 views
5

Başka bir HTML dosyasındaki içeriği dizin sayfama eklemek için aşağıdaki AJAX kodunu kullanıyorum. AJAX düzgün çalışıyor ve içeriğim ortaya çıkıyor, ancak CSS'de kodladığım stiller AJAX çalıştırıldıktan sonra uygulanmıyor.AJAX çalıştırıldıktan sonra CSS stilleri yenilenmez

Soruna bir yanıt arayan ağı arıyordum, ancak şu ana kadar çalıştığım çözümler işe yaramadı. Aşağıda, eklediğim içerik üzerinde CSS yenilemeyi denemek ve zorlamak için .trigger ('create') kullanıyorum, ancak çalışmıyor. Sayfayı tarayıcıdan manuel olarak yenilediğimde, stillerim uygulanır. Birisi AJAX'ın tüm sayfayı yenilemeden çalıştırdıktan sonra stilleri nasıl yenileyeceğine dair bana doğru yönlendirebilir mi? indeks sayfasına eklenen ediliyor

$.ajax({ type: "GET", 
    url: pageToLoad, 
    async: false, 
    success : function(data) 
    { 
     $(data).find('#'+divID).appendTo('#contentcontainer').trigger('create'); 
    } 
}); 

HTML:

<div class="content" id="portfolio"> 
    <div class="wrapper"> 
     <h2>Portfolio</h2> 
      <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras vestibulum libero non egestas dapibus. Nam gravida, libero ac posuere eleifend, mauris nisi venenatis metus, non hendrerit magna justo eget lectus.</p> 
    </div><!--wrapper--> 
    <div class="clear"></div> 
</div><!--content--> 

CSS stillerinin default.css uygulanmaktadır:

#index {background-color:#82e4e5;} 
#portfolio {background-color:#fb5656;} 
+1

Merhaba Yalın, tarayıcılar * AJAX ile eklenen HTML stillerini uygulamalıdır. Değillerse, CSS seçiminde yazım hatası olmadığını doğrulayın. Gördüğüm gibi değil ama daha fazlası var mı bilmiyorum. Başka bir sorun giderme adımı, HTML'nin stilinize kaydedileceğini doğrulamak için HTML'yi doğrudan dosyanıza yerleştirmek ve JavaScript'i denklemden çıkarmak olabilir. Stil yaparsa, bu durumda JS'de tuhaf bir şey olması için sorunu daraltmalı. – jmbertucci

cevap

1

Bunu denemek mü?

$.ajax({ type: "GET", 
    url: pageToLoad, 
    async: false, 
    success : function(data) 
    { 
     $(data).find('#'+divID).appendTo('#contentcontainer').trigger('create'); 
     $('#index').css("backgroundColor", "#82e4e5"); 
     $('#portfolio').css("backgroundColor", "#fb5656"); 
    } 
}); 
+0

Hey Lion, yanıt için teşekkürler. Ancak, renkleri JQuery ile uygulamak yerine CSS'i stil sayfasından kontrol edebilmek istiyorum. Bu çalışmayı yaptıktan sonra yapmam gereken çok daha fazla stil var (x Umarım! X). AJAX çalıştırıldıktan sonra stil sayfası yenilemeyi nasıl zorlayacağınızı biliyor musunuz? – Leann

+0

lebolo ile aynı, ben sayfaya bir şey eklemek için bazı ajax çağrısı yaptık ve tüm stil sayfasını herhangi bir sorun olmadan okuyabilirsiniz. Probleminde daha spesifik olabilir misin? –

+0

Herkes, jQuery'yi başka bir yöne almaya karar verdim. Hali hazırda olan stillerle daha iyi çalışıyor gibi görünüyor. Bu soru artık geçerli değil. Cevap verdiğin için teşekkürler! – Leann

1

Bir AJAX çağrısından sonra stillerinizi yenilemeniz gerekmemelidir. Örnek olarak bir jsFiddle oluşturabilir misiniz?

Benim için çalışan bir jsFiddle oluşturdum. Ancak, div ile enjekte eden HTML'yi çevrelemeliydim. Ayrıca .trigger('create') kodundan kurtuldum.

İlgili konular