简单的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/