• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Script funktioniert nicht im IE11

djs84

New member
Hallo zusammen,

ich habe hier ein Script gebaut um mir eine Pagination zu ermöglichen.
Wenn mehr als 5 Einträge auf einer Seite sind, kann man über die Pagination die anderen Inhalte aufrufen.
Im Firefox und Chrome funktionert das Script tadellos...nur im IE11 nicht :(
Hat jemand ein Tipp für mich?

Code:
var seiten = {};
var prev;
var next;
var html;
seiten.Pager = function() {
    this.paragraphsPerPage = 1;
    this.currentPage = 1;
    //this.pagingControlsContainer = '#pagingControls';
    this.pagingContainerPath = '.mainContent';

    this.numPages = function() {
        var numPages = 0;
        if (this.paragraphs !== null && this.paragraphsPerPage !== null) {
                                    numPages = Math.ceil(this.paragraphs.length / this.paragraphsPerPage);
        }
        
        return numPages;
    };

    this.showPage = function(page) {
        if (this.numPages() > 1) {
            this.currentPage = page;
            
            //Headline:
            var headline = '<div class="block headline-1">';
            headline += $('.headline-1').html();
            headline += '</div>';
            html = headline;

            this.paragraphs.slice((page-1) * this.paragraphsPerPage, page*this.paragraphsPerPage).each(function() {                                                            
                html += '<div class="block contentBlock">' + $(this).html() + '</div>';
            });

            $(this.pagingContainerPath).html(html);
            renderControls(this.currentPage, this.numPages(), this.paginationTop);
            //scroll top:
            $('body,html').animate({
                scrollTop: 0
            }, 300);
        }                            
    }

    var renderControls = function(currentPage, numPages, paginationTop) {
    var pagingControls = '<ul class="pagination">';
    
    if ($(window).width() < 768) {
        prev = "«";
        next = "»";                  
    } else {
        prev = "Vorherige Seite";
        next = "Nächste Seite";
    }
    
    if(currentPage > 1) {
        pp = currentPage - 1;
        pagingControls += '<li><a href="#" onclick="pager.showPage(' + pp + '); return false;">'+prev+'</a></li>';
    }

    for (var i = 1; i <= numPages; i++) {                                         
        if (i != currentPage) {
            pagingControls += '<li><a href="#" onclick="pager.showPage(' + i + '); return false;">' + i + '</a></li>';
        } else {
            //current Page:
            var cp = i;
            pagingControls += '<li class="active"><a href="#">' + i + '</a></li>';
        }
    }
    var np = Math.min(cp+1, numPages);
    if (cp != numPages) {
        pagingControls += '<li><a href="#" onclick="pager.showPage(' + np + '); return false;">'+next+'</a></li>';
    }
    pagingControls += '</ul>';                  
    
    //top:
    if(paginationTop) {
        $('.headline-1').after(pagingControls);
    }
    //bottom:
        $('.mainContent').append(pagingControls);
    }
}

//Pagination
var pager = new seiten.Pager();
$(document).ready(function() {              
    //nur auf Uebersichtsseiten:
    if ($('div').hasClass('pm_sp1')) {
        pager.paginationTop = true; // Show Pagination on top
        pager.paragraphsPerPage = 5; // Elemente pro Seite
        pager.pagingContainer = $('.mainContent'); // Content Container
        pager.paragraphs = $('div.contentBlock', pager.pagingContainer); // Einzelner Inhalt
        pager.showPage(1);
    }
});
 
was genau passiert denn (nicht) im IE? genaue fehlerbeschreibung? was steht in der konsole?
globale variablen bitte tunlichst vermeiden.
warum benutzt du kein fertiges jquery plugin?
 
Zurück
Oben