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