14

可能重复:
当 div 可见时触发操作的 jQuery 事件

当由ajax加载的元素变得可见时(“显示”从“无”切换到“块”),我如何运行我的一些代码?好吧,我需要一些活动,比如

$('#element').live('show', function(){
// CODE
});

或监视删除/向元素添加某些类的事件

4

4 回答 4

3

问题已通过使用 jquery-appear 插件解决

https://github.com/morr/jquery.appear

于 2012-05-16T07:31:10.747 回答
2

没有任何内置的 jQuery 可以让您实现这一目标。你可以看看livequery 插件。例如:

$('#element').livequery(function() {
    // CODE
});

当一个 id="element" 的元素被添加到 DOM 时,回调应该被执行。

于 2012-05-14T13:20:23.210 回答
2

每 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 事件回调;在这些事件回调中,您应该放置“当元素可见时”运行代码。

于 2012-05-14T14:15:57.660 回答
0

你试过jQuery.load()吗?

http://api.jquery.com/load-event/

它至少应该适用于图像、脚本标签等……但不适用于没有 URL 的元素。

否则,livequery应该会有所帮助:

用于添加 dom 元素的 jquery 实时事件

于 2012-05-14T13:17:33.863 回答