有没有办法用jQuery检测fadeIn事件的完成,所以我可以在完成时触发一个函数?
我知道fadeIn 有一个内置的回调函数,但这需要我直接影响fadeIn 代码。我无权访问该代码,因此我想添加一个事件侦听器或其他东西来检测项目何时淡入。
我想这样做的原因是因为我有一些代码可以检测 div 的高度,但是在页面加载时这个 div 元素是隐藏的。我想检测 div 淡入后的高度。
有没有办法用jQuery检测fadeIn事件的完成,所以我可以在完成时触发一个函数?
我知道fadeIn 有一个内置的回调函数,但这需要我直接影响fadeIn 代码。我无权访问该代码,因此我想添加一个事件侦听器或其他东西来检测项目何时淡入。
我想这样做的原因是因为我有一些代码可以检测 div 的高度,但是在页面加载时这个 div 元素是隐藏的。我想检测 div 淡入后的高度。
您可以使用 DOMAttrModified 事件,尽管这取决于您需要支持的浏览器,因为它仍处于试验阶段。
但是由于 jQueryanimate()
改变了style
元素的属性,所以它是合适的。
//your code
var div = $('#some_div'), target_height = 100;
div.on('DOMAttrModified', function(evt) {
if ($(this).height() == target_height) do_something();
});
//some code in another, untouchable script
$('#some_div').animate({height: 100});