使用jquery处理动态加载到页面上的元素

时间:2010-11-11 19:06:55

标签: jquery live bind

我在页面触发后使用以下内容进行检查,以查看容器中的所有图像是否都已正确呈现:

 $(window).bind('load', function() {
        $('.imagecontainer').each(function() {
            if ((typeof this.naturalWidth != "undefined" && this.naturalWidth == 0) || this.readyState == 'uninitialized') {
                // Image not available so handle
            }
        });
    });     

如果在首次加载期间在页面上呈现图像,则这一切都有效。

但是我遇到了由用户操作驱动图像动态加载的情况。

有什么办法可以改变我的代码来处理这个问题吗?我知道.live()jquery函数但不知道如何在这里引入它。

1 个答案:

答案 0 :(得分:1)

实时功能正是您想要的。实际上,您只需要在示例中将bind替换为live以处理将来的案例。

文档:http://api.jquery.com/live/

  
      
  • 在jQuery 1.3.x中,只有以下JavaScript事件(除自定义事件外)才能与.live()绑定:click,dblclick,keydown,keypress,keyup,mousedown,mousemove,mouseout,mouseover和mouseup。   
        
    • 从jQuery 1.4开始,.live()方法支持自定义事件以及所有JavaScript事件。从jQuery 1.4.1开始,即使是焦点和模糊也可以实时使用(映射到更合适,冒泡,事件的焦点和焦点)。
    •   
    • 从jQuery 1.4.1开始,可以指定悬停事件(映射到mouseenter和mouseleave,然后映射到mouseover和mouseout)。
    •   
  •   

(您需要在.live('load')支持下使用1.4+。)