2012-03-28 11 views
0

Ich arbeite derzeit an einer Website, die ajax benötigt, um die inneren Seiten zu laden, aber bestimmte Gruppen von Seiten erfordern eine Hintergrundänderung sowie eine Containerbreite ändern.ajax bedingte if Anweisungen laden Seiten

Gibt es trotzdem könnte ich bedingte if-Anweisungen verwenden, um die Klasse/CSS auf bestimmte Elemente zu ändern? Wenn ja, wie würde ich darüber gehen?

Sorry vergessen zu sagen, abhängig von der Seite URL.

Also, wenn url = innerpage.html Änderung Klasse auf

dies auf eine Art und Weise Alle Werke:

$('nav li a').click(function(){ 

    var toLoad = $(this).attr('href'); 
    hideView() 
    $('#ajax-page').hide('fast', loadContent); 
    $('#load').remove(); 
    $('#container').append('<span id="load">LOADING...</span>'); 
    $('#load').fadeIn('normal'); 
    window.location.hash = $(this).attr('href').substr(0,$(this).attr('href').length-5); 
    function hideView() { 
     $('#container').find('.view').fadeOut('fast'); 
    } 
    function loadContent() { 
     $('#ajax-page').load(toLoad,'',showNewContent()) 
    } 
    function showNewContent() { 
     $('#ajax-page').show('normal',hideLoader()); 
    } 
    function hideLoader() { 
     $('#load').fadeOut('normal'); 
    } 
    return false; 

}); 
+0

Ja, aber bedingt von was? Die Seiten-URL? –

+0

Können wir ein Beispiel Ihres Codes sehen? – Ryan

+0

Ich denke, deine Frage sollte spezifischer sein. Ich würde sagen ... Natürlich können Sie bedingte if-Anweisungen verwenden, um Sachen zu ändern –

Antwort

0

Sie jQuery .addClass() und .removeClass() Funktionen verwenden können, um Klassen von Elementen hinzufügen und entfernen. Verwenden Sie auch jQuery .css('attr','value'), um CSS für dieses Element zu ändern.

0

Wenn die Anzahl von Hintergrund und Breite sehr begrenzt ist, können Sie Klassen in Ihrem CSS vorbereiten und die benötigte Klasse über Ajax übergeben.

Wenn Sie jedoch viele Variationen haben und etwas vorladen/animieren möchten, dann sollten Sie alle relevanten Rohdaten (Hintergrund, Breite, Inhalt) als Json - Objekt über das Datenargument des Servers übergeben Erfolgsantwort, dann testen Sie sie auf Relevanz und wenden Sie/applizieren sie nicht mit .html() und .attr().

+0

Aktualisierte die Frage – meestormac