Jquery 循环在第一个图像中失去对 $(this) onAfter 的引用

标签 jquery cycle

我在 jquery 循环插件上检索图像对象的宽度属性时遇到问题

$(function() {

    $('#image').cycle({
        fx:     'fade',
        speed:  'slow',
        timeoutFn: calculateTimeout,
        width: 'auto',
        containerResize:true,
        slideResize: false,
        before:onBefore,
        after:onAfter
    });
});
function onAfter() {

    alert($(this).width()); 
}

它为从第二个到最后一个的所有图像提供了正确的宽度,但为第一个图像提供了 0(第一个图像是 550*380)。有人可以向我解释一下为什么吗?

最佳答案

它可能正在尝试获取尚未加载的图像的尺寸。尝试将此代码附加到 jquery load 事件而不是 ready 事件。

根据 jquery 文档,load 事件会等待图像加载完毕,而 ready 会在 DOM 构建完成后立即触发。

引用:http://api.jquery.com/ready/

关于Jquery 循环在第一个图像中失去对 $(this) onAfter 的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12975273/

相关文章:

jquery Cycle2 视频和图像在一起

c++ - 判断一个邻接矩阵是否有环,然后输出那个环

javascript - 在 CSS 中使用 Max-width 按比例缩放图像

jquery - IE7 中 bxslider 的 z-index 菜单问题

javascript - 显示 JSON 数据的下载进度百分比

javascript - jQuery 滚动效果无法按预期工作

jquery - JQuery、asp.net-MVC Controller 的问题

c++ - 如何以尽可能少的时间复杂度检测网格中的循环?

jquery - 运行 jQuery .cycle() 后,CSS 背景图像在 IE (6, 7, 8) 中消失

c - 而对于 : what is the best?