javascript - 用jquery取到一个图片数组时只可识别其第一张图片?跟事件委托有关系吗?
巴扎黑
巴扎黑 2017-04-11 11:58:38
[JavaScript讨论组]

$(function()

$(window).resize(function() {
    var $height=$(". img").height();
    console.log($height);
});

})

这里 img 是三张图片(轮播图),当第一张展现的时候可以正常输出height ,到后两张图片展示的时候,$height的值成了0,求解

巴扎黑
巴扎黑

全部回复(2)
伊谢尔伦

$(".img").height()只能拿到第一张图片的高度,而拿不到后面两张的,想拿后面两张的高度的时候,请使用:

$(".img").eq(1).height() //第二张图片
$(".img").eq(2).height() //第三张图片

我觉得你的轮播图应该是轮播到第二张的时候,第一张图片已经隐藏了,然后你又拿到第一张图片的height,正因为第一张图片已经隐藏了,所以你拿到的height为0。

建议调整下:

  • 给当前显示的图片加个class,比如active,默认在第一张

  • 轮播到第二张的时候,把第一张图片的className active干掉,然后把第二张图片加上className active

  • 然后在resize里通过$(.img.active).height()来获取高度。

PHP中文网

因为eq(0)只能获取图片数组的首个元素,除非你的HTML结构发生变化,不然获取的应该一直都是同一个。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号