在描述我的问题之前,我想准确地概述一下我正在尝试
我在这里要做的是根据用户可以按下的按钮将不同的项目集加载到内容流中。我已经设置了一个由按钮触发的函数,该函数将获取与我通过AJAX(使用jQuery$.get)传递给它的名称值相关联的项,并放入一个ID为itemcontainer的div中。这很管用。
function getPictures(Gallery){
$.get( "getimages.php", {name : Gallery}, function( data ) {
for(x in data){
$("#itemcontainer").append(data[x]);
}
addPictures();
}, "json" );
return false;
}
您将看到该函数调用其中的另一个函数(addPictures()),该函数实际上通过ContentFlow的addItem方法将图片从ID为itemcontainer的div添加到ContentFlow转盘中。
function addPictures(){
clearBox();
var it = ajax_cf.items;
// Grabs pictures from 'itemcontainer' and iteratively adds them to 'flow'
var ic = document.getElementById('itemcontainer');
var is = ic.getElementsByTagName('img');
for (var i=0; i< is.length; i++) {
ajax_cf.addItem(is[i],"end");
}
}
您会注意到addPictures()函数中有一个函数,我之前声明它名为clearBox()。clearBox()应该循环遍历我的内容流中的项目并删除它们,这样我就可以在加载新项目之前删除ContentFlow转盘中的旧项目库。
它的工作原理是循环遍历列表项(称为项),这是ContentFlow对象ajax_cf的属性。我为每个项在索引0的列表元素上创建并运行一个方法rmItem。这是clearBox函数。
var ajax_cf = new ContentFlow('ajax_cf');
function clearBox(){
alert("clear");
var it = ajax_cf.items;
var len = it.length;
for(var i=0; i<len; i++){
ajax_cf.rmItem(0);
}
return false;
}
如果你愿意,你可以在这里获取来源或文档。http://www.jacksasylum.eu/ContentFlow/
提前感谢!
我不知道你是否已经解决了这个问题,但这里有一个想法。由于这些对象在DOM中,请尝试使clearBox()
方法删除itemcontainer
中的项。所以你的方法可能看起来像:
function clearBox()
{
alert("clear");
var images = $('itemcontainer').children();
for (var i = 0; i < images.length; i++)
{
$('itemcontainer').remove(images[i]);
}
}
通过这种方式,您将强制ContentFlow对象删除图像,当addPictures
方法继续时,它将基本上重新初始化ContentFlow旋转木马。
这是未经测试的,但从逻辑上讲似乎是可行的,因为ContentFlow库的rmItem
方法所要做的就是从DOM中删除对象,所以您选择自己这样做。