Salve a tutti,
sono alle prese con un problema abbastanza fastidioso visto che sarà sicuramente una banalità che non mi permette di risolverlo.
Utilizzo la libreria responsiveslide per mostrare delle news ad effetto slideshow ogni 5 secondi. E fin qui tutto funziona bene.
Poi, però, vorrei aggiornare il contenuto della div che visualizza queste news ogni mezzora in modo da avere sempre le ultime notizie e faccio in questo modo:
views/layouts/slideshow.php
<?php /* @var $this Controller */
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="language" content="en" />
<link rel="stylesheet" type="text/css" href="<?php echo Yii::app()->request->baseUrl; ?>/css/print.css" media="print" />
<!--[if lt IE 8]>
<link rel="stylesheet" type="text/css" href="<?php echo Yii::app()->request->baseUrl; ?>/css/ie.css" media="screen, projection" />
<![endif]-->
<link rel="stylesheet" type="text/css" href="<?php echo Yii::app()->request->baseUrl; ?>/css/slideshow.css" />
<title><?php echo CHtml::encode($this->pageTitle); ?></title>
</head>
<body>
<div class="container" id="page">
<?php echo $content; ?>
<div class="clear"></div>
</div><!-- page -->
<div id="footer">
<?php
// link dell'RSS
$news = new News();
echo $news->run();
?>
</div>
<?php
$refreshInterval = Yii::app()->params['newsRefreshInterval'];
Yii::app()->clientScript->registerScript('feed-updater', '
function updater() {
$("#footer").load(" #footer", function(){
setTimeout(updater, '.$refreshInterval.');
});
}
setTimeout(updater, '.$refreshInterval.');
');
?>
</body>
</html>
La classe News non fa altro che restituire le news in una lista ul.
Infine il javascript che richiamo nella view verso cui effetto il render, è il seguente
function responsiveText()
{
$('#footer').css('font-size', $('#footer').css('height'));
}
// richiama la libreria responsiveSlides()
$(function()
{
// image slideshow
$("#imageSlider").responsiveSlides(
{
// 20 sec
timeout: 20000,
});
// news slideshow
$("#newsSlider").responsiveSlides(
{
// 3 sec
timeout: 5000,
});
responsiveText();
// resposive news
$(window).resize(function(){
responsiveText();
});
});
Insomma, al primo avvio della pagina tutto funziona bene.
Non appena, però, effetto il refresh della div tramite jQuery è come se non caricasse la parte della libreria che si occupa di fare lo scrolling delle news. Il risultato è la prima news ferma, che non si muove.
Sapete dirmi perchè si verifica questo problema?
Grazie.