Nessuna delle risposte ha lavorato per me, così ho pensato di condividere la mia soluzione.
Carico una funzione denominata handleScroller()
su document.ready()
. Quando eseguo un aggiornamento su ul li
, richiamo di nuovo la funzione handleScroller()
in modo che lo slimScrollDiv venga distrutto e ricostruito di nuovo. Ho anche impostato l'altezza del contenitore ul. Sembra che funzioni abbastanza bene. Ecco un esempio del mio codice:
CSS in style.css .scroller {height: 182px;}
HTML/menù Bootsrap
<ul class="nav navbar-nav pull-right">
<!-- slimScroll notifications -->
<li id="header_notification_bar" class="hidden dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">
<i class="fa fa-bell"></i>
<span class="badge">
6
</span>
</a>
<ul id="notifications" class="dropdown-menu extended"></ul>
</li>
<!--other menu items ... //-->
</ul>
JS/jQuery
$(document).ready(function(){
handleScroller();
VisitedHandler();
});
function VisitedHandler(){
$("#notifs li").on("click",function(){
$("#notifications").html('');
$('ul#notifs').html('');
$("#notifications").append('<li><ul id="notifs" class="dropdown-menu-list scroller"></li>');
var ul = $('#notifs');
ul.append('<li id="general">New Announcement</li>')
ul.append('<li id="enhancements">New Page Enhancements</li>');
handleScroller();
});
}
function handleScroller(){
$("#notifs").slimscroll({destroy:true});
var notes = $("#notifs");
var height = notes.css("height");
if($('#notifs .nws').size() < 5 && $('#notifs .nws').size() != 0)
height = $('#notifs .nws').size() * 40 + 22;
else
height = 182;
//no Notifications
if($('#notifs .nws').size() == 0)
height = 0;
$("#notifs").slimScroll({
size: '10px',
color: '#a1b2bd',
railColor:'#272727',
position: 'right',
height: height,
alwaysVisible: true,
railVisible: true,
disableFadeOut: true
});
}
NOTA: C'è una soluzione here che avvolge la logica handleScroller()
attorno a uno setInterval()
. Suggerisco di stare lontano setInterval()
se possibile.
potresti farlo in Fidle ?? – gidzior
Ok, dammi un po 'di tempo! –
qui è: http://jsfiddle.net/HFdPq/ –