AJAX und .length funktioniert nicht.

Hi,

ich hoffe, dich richtig verstanden zu haben - du willst also immer nur die Navigation zum aktuell geladenen Inhalt anzeigen. Vielleicht reicht es aus, nur diese einzublenden.
Code:
$(function(){
    var ajaxContent         = $('.ajaxContent'),
    ajaxContentControl  = $('li.ajaxcontentcontrol');

  $('.ajaxcontentcontrol').remove('.ajaxcontentcontrol');

  $('.contentcontrol>ul li.ajaxcontentcontrol').remove();
  $('.contentcontrol>ul li:first-child').before(ajaxContentControl.eq(ajaxContentControl.length-1));
  ajaxContentControl.hide().fadeIn('slow');


// AJAX content remove
  $('.unload').on('click', function(){
    ajaxContent.children().fadeOut('slow', function(){
      $(this).remove();
      $('.ajaxcontentcontrol').fadeOut('slow', function(){
        $(this).remove();
      });
    });
  });

  $('.next a, .prev a').click(function(ajaxClick){
    ajaxClick.preventDefault();

    var contentToLoad = $(this).attr('href');

    if (ajaxContent.is(':empty')){
      ajaxContent.html('<span class="icon-refresh icon-spin icon-large ajaxLoader" aria-hidden="true"></span><span class="hide">Inhalt wird geladen.</span>');
      ajaxContent.load(contentToLoad).fadeIn('slow');
    }
    else {
      ajaxContent.html('<span class="icon-refresh icon-spin icon-large ajaxLoader" aria-hidden="true"></span><span class="hide">Inhalt wird geladen.</span>');
      $('.ajaxcontentcontrol').css('display', 'block');
      ajaxContent.load(contentToLoad, function() {
        ajaxContent.hide().fadeIn('slow');
      });
    }
    history.pushState({}, '', contentToLoad);
    $(this).addClass('active');
  });
});
Ciao
Quaese
 
Hallo Quaese,
ja du hast mich richtig verstanden.
Es ist das erstemal das ich mich an sowas komplexes ran traue.

Die Idee mit .eq in Verbindung mit .length ist echt gut.
Jetzt funktioniert der Mist endlich richtig :). Also ein fettes Dankeschön.

Aber solche Kopfnüsse bringen einen auch weiter, hab noch nie soviele Varianten mit if/else ausprobiert :).

Viele Grüße
 
Hi,

vielleicht solltest du dir dennoch mal meinen Lösungsansatz ansehen, in dem die Steuerung aus dem Hauptdokument erfolgt.

Vorteil: Du musst nicht bei jedem Ajax-Request das Script mitsenden -> spart Traffic

Ciao
Quaese
 
Hi,
den hab ich mir natürlich angeschaut, das gebührt schon der Anstand aus Respekt für deine Arbeit :).
Momentan habe ich noch das andere Script drinnen da ich erst noch den live Ansatz umschreiben muss und bisher noch nicht dazu gekommen bin.

Aber der Performance Aspekt ist natürlich schon wichtig zu berücksichtigen.

Grüße
 
Zurück