过去两天我一直在努力让这个东西调用我 getJSON 并根据 carousel.last 获取一组新记录 单击下一步按钮时的值。启动时加载 3 张图片 很好,但是下一个按钮未启用,因为我只有 3 个 已加载,并且队列中不再有任何徘徊。我什么都不想要 挥之不去。
看看这个例子,这就是我想要做的,但相反 使用 getJSON 方法获取新的图像集:
http://sorgalla.com/projects/jcarousel/examples/dynamic_flickr_api.html
这是我的代码,但它不起作用,这意味着我加载了 3 个图像并且 下一个按钮未启用。即使我加载 4 张图像(以获得 下一个按钮可点击,因为我已经加载了 4 张图像并且它知道 除了 3) 之外还有另外一个,它不会去获取一个 新的 3 张图像集:
<script src="../scripts/jquery-1.3.2.min.js" type="text/javascript"></
script>
<script src="../scripts/jquery.jcarousel.pack.js" type="text/
javascript"></script>
<link rel="stylesheet" type="text/css" href="../css/
jquery.jcarousel.css" />
<link rel="stylesheet" type="text/css" href="../css/skin.css" />
<script type="text/javascript">
jQuery(document).ready(function()
{
$('#mycarousel').jcarousel({
itemLoadCallback: mycarousel_itemLoadCallback
});
});
function decode(s)
{
return s.replace(/&/g, "&")
.replace(/"/g, '"')
.replace(/'/g, "'")
.replace(/</g, "<")
.replace(/>/g, ">");
};
function mycarousel_itemLoadCallback(carousel, state) {
carousel.lock();
//for (var i = carousel.first; i <= carousel.last; i++) {
mycarousel_itemAddCallback(carousel, carousel.first,
carousel.last);
//}
};
function mycarousel_itemAddCallback(carousel, first, last) {
// Unlock
carousel.unlock();
$.getJSON("http://localhost:59396/xxx/xxxHandler.ashx?
action=carouselproducts&setsize=3" + "&cfirst=" + carousel.first +
"&clast=" + carousel.last,
function(data) {
carousel.size(data.length);
$.each(data, function(i, item) {
carousel.add(i, decode(item.ImageTag));
if (i == 3) return false;
});
});
};
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<ul id="mycarousel" class="jcarousel-skin-ie7">
<!-- this will be dynamically populated -->
</ul>
</div>
</form>
</body>
</html>
我不知道这里还能尝试什么,也不知道如何让它像下面一样工作 例子。我认为我不需要所有的分页逻辑,因为我 不使用 Flickr,我只想将下一组设置为基于获取 在轮播的第一个和最后一个索引上,通过单击下一个或上一个按钮调用我的 getJSON。
最佳答案
我拿走了你的代码并在 FF4 和 IE9 中运行它。下一个按钮已启用,当我单击下一个图标时,我什至看到正在进行 ajax 调用。您的问题浏览器是否特定?
关于jquery - 尝试让 jCarousel 在单击“下一步”按钮时获取新的记录集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1063400/