我有一个在 codeigniter 上运行的项目,我正在使用 jscroll 进行无限滚动。我正在使用一个名为 rotator.js 的 js 文件来对每个帖子发表评论。当我的家庭控制器运行索引函数时,它在调用帖子视图的同一控制器中调用 loadpost() 函数。家庭控制器如下
$count = 2;
$pg = 1;
$this->load->view('header');
$this->load->view('nav', $data);
$this->load->view('login', $data);
$this->loadpost($pg,$count);
$this->load->view('footer');
loadpost() 函数接受参数 $pg-> 页码和 $count-> 每页的帖子数。函数调用 posts.php 视图,该视图显示它返回的每个帖子在另一个下方,并且 posts.php 视图的末尾具有 jscroll 使用的锚链接,如下所示
<div class='pager'>
<a href="<?php $pg++;
echo base_url('index.php/home/loadpost/' . $pg) ?>" class='next-selector'></a>
</div>
每个帖子都有多个评论,这些评论一一显示,并由 rotate.js 文件管理,该文件具有以下代码
(function($){
$.fn.extend({
rotaterator: function(options) {
var defaults = {
fadeSpeed: 500,
pauseSpeed: 500,
child:null
};
var options = $.extend(defaults, options);
return this.each(function() {
var o =options;
var obj = $(this);
var items = $(obj.children(), obj);
items.each(function() {$(this).hide();})
if(!o.child){var next = $(obj).children(':first');
}else{var next = o.child;
}
$(next).fadeIn(o.fadeSpeed, function() {
$(next).delay(o.pauseSpeed).fadeOut(o.fadeSpeed, function() {
var next = $(this).next();
if (next.length == 0){
next = $(obj).children(':first');
}
$(obj).rotaterator({child : next, fadeSpeed : o.fadeSpeed, pauseSpeed : o.pauseSpeed});
})
});
});
}
});
})(jQuery);
$(document).ready(function() {
$('.rotate').rotaterator({fadeSpeed:500, pauseSpeed:2000});
});
现在,如果我在标题中包含 rotate.js 文件,则评论根本无法从第二页帖子开始(在本例中为第三个帖子开始)以及当我在帖子中放置相同的脚本时闪烁。 php view 它在每次页面加载时都会被调用多次,因此在之前的帖子中会有一个不稳定的行为,例如,如果我加载三个页面,前两个页面会多次调用该函数并显示不想要的结果(闪烁速度更快并显示多个一次评论),而第三页帖子中的评论正确闪烁。
我在这里做错了什么。如果页面在视图中放置 thcript 时多次调用脚本,那么为什么从标题调用脚本时它不能使用脚本。任何帮助,将不胜感激。