可能重复:
当 div 可见时触发操作的 jQuery 事件
当由ajax加载的元素变得可见时(“显示”从“无”切换到“块”),我如何运行我的一些代码?好吧,我需要一些活动,比如
$('#element').live('show', function(){
// CODE
});
或监视删除/向元素添加某些类的事件
可能重复:
当 div 可见时触发操作的 jQuery 事件
当由ajax加载的元素变得可见时(“显示”从“无”切换到“块”),我如何运行我的一些代码?好吧,我需要一些活动,比如
$('#element').live('show', function(){
// CODE
});
或监视删除/向元素添加某些类的事件
问题已通过使用 jquery-appear 插件解决
没有任何内置的 jQuery 可以让您实现这一目标。你可以看看livequery 插件。例如:
$('#element').livequery(function() {
// CODE
});
当一个 id="element" 的元素被添加到 DOM 时,回调应该被执行。
每 1 秒运行一次检查。如果#element
存在并且可见,则清除(停止)间隔并执行您的代码。
var checkVisible = setInterval(function(){
// if element doesn't exist or isn't visible then end
if(!$('#element').length || !$('#element').is(':visible'))
return;
// if element does exist and is visible then stop the interval and run code
clearInterval(checkVisible);
// place your code here to run when the element becomes visible
},1000);
不可避免地会有一些显示元素的 jQuery 事件回调;在这些事件回调中,您应该放置“当元素可见时”运行代码。
你试过jQuery.load()
吗?
http://api.jquery.com/load-event/
它至少应该适用于图像、脚本标签等……但不适用于没有 URL 的元素。
否则,livequery应该会有所帮助: