我知道这是一个基本问题,但这些是让我感到兴奋的问题。
我定义了一个变量:
var img_w = $('#image').width();
然后我这样做:
$(document).ready(function() {
if (img_w > 100) {
//do stuff
}
});
我的图片是从一个单独的html加载的,用jQuery设置,然后符合> 100标准,但为时已晚。所以我试试:
$(window).load(function()
$(window).on('load' function()
$(window).onload(function()
$(window).ready(function()
依此类推......但由于事件的顺序无济于事。
所以简单的解决方案是在img_w大于100时制作一个事件。但由于某种原因,我无法找到最佳方法。我确信这是一个我想念的简单解决方案。任何帮助都感激不尽。 :)
编辑:向您展示有关正在发生的事情的问题; div是将它的宽度设置为img_w。 img_w获取其值的图像是从外部html文件加载的。设置div宽度的jQuery以及变量的位置在外部html文件中。
答案 0 :(得分:3)
您可以使用DOMSubtreeModified
事件,该事件会在元素属性发生变化时执行。
$('#image').bind("DOMSubtreeModified", CheckHeight);
以下是一个示例:https://jsfiddle.net/DinoMyte/6d5ry9br/
UPDATE :由于DOMSubtreeModified已弃用且可能不再与所有浏览器兼容,因此另一种可能的选择是将事件处理程序委派给元素,并在外部事件调用期间手动调用change事件:
$('#image').bind("DOMModified", CheckHeight);
$("#image").triggerHandler('DOMModified');