2017-05-26 2 views
1

Hier verwende ich die Funktion .each() in jquery, um die Zahlenwerte aus jeder Liste (li) zu erhalten.Warum, wenn ich auf jede Nummer klicke, bekomme ich nur 2 Konsolen. In PaginationJS

Das Problem ist, warum, wenn ich die Funktion .each() verwenden, und ich versuche, Konsole zu tun, wenn Sie die Click-Funktion, die ich nur das ist nur 2 Konsole nur, und als nächstes nicht funktionieren.

$('#pagination').pagination({ 
 
    dataSource: [1, 2, 3, 4, 5, 6, 7], 
 
    pageSize: 1 
 
}); 
 

 
$('#pagination li').each(function() { 
 
    $(this).on('click', function() { 
 
    var numPagination = $(this).data('num'); 
 
    console.log(numPagination); 
 
    }); 
 
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/paginationjs/2.0.8/pagination.min.js"></script> 
 

 
<div id="pagination"></div>

Bitte meinen Code korrigieren. :)

+0

Jeder Klick auf einem '#pagination li' Element bewirkt, dass die gesamte Paginierung DOM zu sein, indem paginationjs wieder aufzubauen - Ihr Klick Hörer zusammen mit dem alten entfernt wird DOM Knoten. Sie müssen in den Dokumenten von paginationjs nachsehen, wie sie die Handhabung von Klicks empfehlen. –

Antwort

1

Der richtige Weg, dies zu tun, ist die Callback-Funktion zu verwenden. Mit dieser Funktion können Sie auch die nächsten und vorherigen Pfeile unterstützen. Ich würde den folgenden Code verwenden:

$('#pagination').pagination({ 
 
    dataSource: [1, 2, 3, 4, 5, 6, 7], 
 
    pageSize: 1, 
 
    callback: function(data, pagination) { 
 
    console.log(data[0]); 
 
    } 
 
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/paginationjs/2.0.8/pagination.min.js"></script> 
 

 
<div id="pagination"></div>

+0

Thx, es ist Arbeit :) – Firmansyah

Verwandte Themen