代码之家  ›  专栏  ›  技术社区  ›  Jordan Sitkin

订阅特定dom元素上.load()的“complete”事件?

  •  2
  • Jordan Sitkin  · 技术社区  · 15 年前

    我已经使用.live()和.bind('ajaxcomplete')来完成某些相关任务,但我发现自己希望能够监听特定dom元素的“complete”事件,该元素将在不同时间调用jquery的.load()。

    在这种情况下,我不想全局监听所有完整的事件(除非有人能告诉我如何从“ajaxcomplete”返回的事件对象中获取正确的目标)。我想做这样的事情:

    $('.selector').load('url.php',{data:data},function(){
       // LOCAL complete function
    });
    

    然后在其他地方附加一个处理程序,以便在ajax调用触发并完成时侦听和执行其他一些代码:

    $('.selector').bind('complete',function(){ ... });
    

    我知道我可以使用上面提到的“本地完整函数”来附加一些功能,但是我希望能够从代码中的其他地方绑定到完整事件-就像我对其他事件(如“click”)所做的那样。

    有办法吗?或者必须始终在load()方法的上下文中使用“complete”事件?

    2 回复  |  直到 15 年前
        1
  •  2
  •   PetersenDidIt    15 年前

    只需在本地完整回调中触发完整事件:

    $('.selector').load('url.php',{data:data},function(){
       $(this).trigger('complete');
       // Local handling of the complete event.
    });
    
    $('.selector').bind('complete',function(){ ... });
    
        2
  •  0
  •   Dustin Laine    15 年前

    您已经接近了示例,请参见jquery上的.load()文档。 http://api.jquery.com/load/

    $('.selector').load('url.php',function() {
        //Complete function
    });