Javascript 如何使用jquery在常规DOM对象上触发事件调整大小
窗口大小调整时发生事件Javascript 如何使用jquery在常规DOM对象上触发事件调整大小,javascript,jquery,Javascript,Jquery,窗口大小调整时发生事件 $(window).resize(function() { ... }); 但是如果我想在任何类型的DOM对象上触发事件,比如: $('div#myDiv').resize(function() { ... )); 但上述措施似乎并不奏效。这可能而且方便吗?还是其他好方法?这是不可能的,但也不应该是必要的。如果div根据窗口大小(即通过媒体查询)更改大小,只需使用$(window).resize()。如果它是通过其他javascript代码更改的,您应
$(window).resize(function() {
...
});
但是如果我想在任何类型的DOM对象上触发事件,比如:
$('div#myDiv').resize(function() {
...
));
但上述措施似乎并不奏效。这可能而且方便吗?还是其他好方法?这是不可能的,但也不应该是必要的。如果div根据窗口大小(即通过媒体查询)更改大小,只需使用$(window).resize()。如果它是通过其他javascript代码更改的,您应该直接挂接到该代码中 如果您愿意,您可以在div上触发一个resize事件并监听该事件,但是您仍然可以手动触发该事件-例如
$('div#myDiv').on('custom_resize', function() {
...
));
// whenever you change div size
$('div#myDiv').trigger('custom_resize');
如果您无法访问更改div的代码,您可以轮询宽度/高度的更改,例如(仅针对宽度):
如果要动态添加图像,这应该可以:
$('<img>').on('load', function() { ... })
.attr('src', {img url})
.appendTo({container})
$('此插件提供了基于元素创建调整大小事件的功能:
跨浏览器、基于事件的元素大小检测
简而言之,此实现不使用内部计时器来检测
大小改变(就像我发现的大多数实现一样)。它使用滚动
大多数浏览器上的事件,以及IE10及以下版本上的onresize事件
使用的方法不仅检测javascript生成的调整大小更改
但也可以对CSS伪类进行更改,例如:hover、CSS
动画等等
像这样吗?我的问题是:div中有几个图像。当加载图像时,div将更改其大小,我希望它触发。那好,在这种情况下,您应该侦听图像的加载事件:$('img')。on('load',function(){…})
但这对我的问题不是很明确:我想在所有图像都准备好之后触发它。但我不想关心那里有什么图像,而且,$('img')。load()
似乎不是对每个图像都触发。只要图像没有动态添加,你可以尝试$(窗口)。on('load',…)
?是的,我可以这样做,但当图像被动态添加时,解决方案仍然远远不是我想要的。谢谢你,可能正是我想要的。
$('<img>').on('load', function() { ... })
.attr('src', {img url})
.appendTo({container})