jQuery事件 - 元素变得可见

时间:2012-05-14 13:15:51

标签: jquery html css

  

可能重复:
  jQuery event to trigger action when a div is made visible

当ajax加载的元素变为可见(“display”从“none”切换到“block”)时,如何运行我的代码? 好吧,我需要一些像

这样的活动
$('#element').live('show', function(){
// CODE
});

或者观看删除/添加某个类到元素的事件

4 个答案:

答案 0 :(得分:3)

使用jquery-appear插件

解决了这个问题

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

答案 1 :(得分:2)

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

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

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

答案 2 :(得分: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事件回调来显示元素;在那些事件回调中,你应该放置'当元素可见时'运行代码。

答案 3 :(得分:0)

您是否尝试过jQuery.load()

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

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

否则,livequery应该有所帮助:

jquery live event for added dom elements