Sto usando una combinazione di jscroll.js, jquery.upvote.js e il metodo paginate()
di Laravel. Funziona tutto tranne che per questa piccola cosa, l'ultimo post nella pagina di impaginazione ha sempre pulsanti di voto non cliccabili.jScroll.js con Laravel 5: nextSelector non trovato - distruggente
Nessun errore nella console dello sviluppatore.
Al momento, sto usando paginate(2)
perché ho solo 3 post nella categoria.
MODIFICA: Ho appena aggiunto alcuni post in più e ho notato che i pulsanti di voto funzionano solo sulla prima pagina, il resto delle pagine sta rendendo i pulsanti di voto non selezionabili.
EDIT 2: ho acceso debug: true
in jscroll.js e sto ottenendo questo nuovo errore
jScroll: nextSelector non trovato - distruggendo
La "prossima" selettore di markup sembra che questo
<a href="24?page=2" rel="next">»</a>
Se rimuovo paginate(2)
e jscroll.js tutti i pulsanti di voto iniziano a funzionare correttamente.
SubredditController
$subreddit = Subreddit::with('posts.votes')->with('moderators.user')->where('id', $subreddit->id)->first();
$posts = $subreddit->posts()->paginate(2);
La vista
<link rel="stylesheet" href="{{ URL::asset('assets/css/jquery.upvote.css') }}">
<script src="{{ URL::asset('assets/js/jquery.upvote.js') }}"></script>
<script type="text/javascript" src="{{ asset('assets/js/jquery.jscroll.min.js') }}"></script>
<script type="text/javascript">
$(document).ready(function() {
$('.topic').upvote();
$('.vote').on('click', function (e) {
e.preventDefault();
var $button = $(this);
var postId = $button.data('post-id');
var value = $button.data('value');
$.post('http://localhost/reddit/public/votes', {postId:postId, value:value}, function(data) {
if (data.status == 'success')
{
// Do something if you want..
}
}, 'json');
});
$('.scroll').jscroll({
autoTrigger: true,
nextSelector: '.pagination li.active + li a',
contentSelector: 'div.scroll',
callback: function() {
$('ul.pagination:visible:first').hide();
}
});
});
</script>
<div class="scroll">
@foreach($posts as $post)
@include('partials/post')
@endforeach
{!! $posts->render() !!}
</div>
Non capisco, ho già un evento on.click, dove altro dovrei averlo? Dovrei mettere il '$ ('. Scroll'). Jscroll()' all'interno di on.click anche? – Halnex
L'evento on-click viene applicato solo agli elementi iniziali della pagina (caricamento). Per ogni nuovo elemento aggiunto da jscroll, dovrai aggiungere l'evento click ('$ ('. Vote'). On ('click')') ad esso. –
Non capisco come funzionerà. Un esempio di codice piccolo forse? – Halnex