好的是这种情况: 我正在使用jcarousel的基本示例(通过Ajax从PHP脚本加载动态内容的Carousel)作为基础:
function mycarousel_itemLoadCallback(carousel, state)
{
// Check if the requested items already exist
if (carousel.has(carousel.first, carousel.last)) {
return;
}
jQuery.get(
'dynamic_ajax_php.php',
{
first: carousel.first,
last: carousel.last
},
function(xml) {
mycarousel_itemAddCallback(carousel, carousel.first, carousel.last, xml);
},
'xml'
);
};
function mycarousel_itemAddCallback(carousel, first, last, xml)
{
// Set the size of the carousel
carousel.size(parseInt(jQuery('total', xml).text()));
jQuery('image', xml).each(function(i) {
carousel.add(first + i, mycarousel_getItemHTML(jQuery(this).text()));
});
};
/**
* Item html creation helper.
*/
function mycarousel_getItemHTML(url)
{
return '<img src="' + url + '" width="75" height="75" alt="" />';
};
jQuery(document).ready(function() {
jQuery('#mycarousel').jcarousel({
// Uncomment the following option if you want items
// which are outside the visible range to be removed
// from the DOM.
// Useful for carousels with MANY items.
// itemVisibleOutCallback: {onAfterAnimation: function(carousel, item, i, state, evt) { carousel.remove(i); }},
itemLoadCallback: mycarousel_itemLoadCallback
});
});
我想要做的是在旋转木马完成初始化后立即执行一个功能,图像在dom中并且可以访问。但是,这应该只发生在页面加载上。不是每次按下上一个或下一个按钮。 非常感谢任何帮助。
谢谢
答案 0 :(得分:1)
您可以使用initCallback
。
$(function(){
$("#mycarousel").jcarousel({
initCallback: function(){
alert("jCarousel is initialized!");
}
});
});
由于您在评论中指出您正在使用ajax选项,以后再加载图片,我建议继续使用itemLoadCallback
,然后只需添加一个标志变量即可。
var loadedfirstime = true;
$("#mycarousel").jcarousel({
itemLoadCallback: function(){
if (loadedfirsttime) {
myFunction();
loadedfirsttime = false;
}
}
});
通过设置标志,所有未来的回调都不会引发相同的行为。
答案 1 :(得分:0)
乔纳森, 非常感谢您出色的快速反应。出于某种原因,我无法使其工作,这意味着在构建Carousel并且dom中的图像可用后,将自动调用函数。 但我做了一个相当不太优雅的方式,并使用一个设置为1秒延迟的计时器 - 我知道这不是最优雅的解决方案,绝对不是100%可靠,但它现在有效。
再次感谢您的超快反应。