jquery - 显示从无更改为阻止时的事件监听器

标签 jquery events twitter-bootstrap

我正在使用 Bootstrap 选项卡,并且其中一个选项卡中有图像。我需要获取它们的宽度,但问题是它们被设置为 display:none 直到我单击该选项卡,因此 jquery width() 始终返回 0。我有尝试将其放入 window.load#tabid.load 但它们都不起作用。那么有没有办法获取隐藏 jquery 选项卡中图像的宽度?仅当显示选项卡时我才需要它们的宽度,因此我认为应该有一些事件监听器在所选选项卡完全加载时触发,但我还没有找到它。还尝试了 on('shown',function()) 如 bootstrap 中所述,但它也不起作用。

编辑:这里是代码:

<ul class="nav nav-tabs" id="myTab">
     <li class="active"><a href="#popis" data-toggle="tab">Popis</a></li>
     <li><a href="#recenzie" data-toggle="tab">Recenzie</a></li>
     <li><a href="#galeria" data-toggle="tab">Galéria</a></li>
     <li><a href="#ostatne-produkty" data-toggle="tab" id="#test">Súvisiace produkty</a></li>
</ul>

JavaScript:

$('#test').on('shown',alert($('img.product-thumbnail').width()));

这个事件甚至在页面加载之前就立即触发,并且显示为空。还尝试将 id="test"不放入 href 而是放入实际中,但它也不起作用。不管怎样, Bootstrap 文档说它应该在 div 中而不是在 div 中

最佳答案

问题在于 on.('show' 图像已加载但尚未渲染,因此 $.width$.height 不提供尺寸信息。

但是你可以在$(window).load<之后直接读取img DOM元素的widthheight属性.

请参阅example

如果您需要渲染图像,然后才希望获取其渲染尺寸,那么您应该使用 on('shown'...。仅在显示选项卡(包含图像)后触发。

我已经尝试过it out and它按预期工作了

关于jquery - 显示从无更改为阻止时的事件监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17390192/

相关文章:

javascript - JSONP 没有收到任何回调?

java - 附加包含标签 <form :XXX> 的 div(带有下拉菜单)

jQuery - 单击并打开

html - 标题隐藏在下拉菜单后面

javascript - 如何在圆形进度条的路径中放置动画?

javascript - jQuery 在悬停错误上向上/向下滑动

javascript - 选项卡的 keyCode 不起作用

javascript - JS 事件监听器的成本是否比额外的 HTTP 请求还要高?

绑定(bind)完成时的 .NET 事件

html - 当使用 flexbox 在其包含行中垂直居中列时,如何让 Bootstrap 网格列堆叠在移动屏幕上?