简单的jQuery变量事件

我知道这是一个基本问题,但这些是让我感到兴奋的问题。

我定义了一个变量:

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文件中。

您可以使用DOMSubtreeModified事件,该事件会在元素属性发生更改时执行。

 $('#image').bind("DOMSubtreeModified", CheckHeight); 

这是一个例子: https : //jsfiddle.net/DinoMyte/6d5ry9br/

更新 :由于DOMSubtreeModified已弃用且可能不再与所有浏览器兼容,因此另一种可能的选择是将事件处理程序委托给该元素,并在外部事件调用期间手动调用change事件:

 $('#image').bind("DOMModified", CheckHeight); $("#image").triggerHandler('DOMModified'); 

这是一个例子: https : //jsfiddle.net/DinoMyte/6d5ry9br/1/