2013-05-01 61 views
1

嘿,我试图关闭显示页面加载时显示的div。但是,这样做:通过Ajax加载的jQuery动态内容

jQuery(document).ready(function() { 
    jQuery('#moreDetailsTable').slideUp("fast", function() {}); 
}); 

似乎没有关闭它,当自其被动态地经由使用AJAX PHP代码填充页面加载。

是Ajax调用看起来像这样的PHP:

echo '<div id="moreDetailsTable" class="widefat fixed comments"> 
    Testing this out<br /> 
    Testing this out<br /> 
    Testing this out<br /> 
    Testing this out<br /> 
    Testing this out<br /> 
</div> 
    ect ect..... 

我知道代码工作,因为我只是这样做:

jQuery(document).on('click', '#moreDetailsTable', function() { 
    jQuery('#moreDetailsTable').slideUp("fast", function() { 
     console.log('done'); 
    }); 
}); 

它向上滑动一次,我一下就可以了

我怎样才能叫.slideUp,因为它动态填充,而不是在页面上开始?

+0

http://api.jquery.com/ajaxComplete/ – Jordan 2013-05-01 14:54:48

+0

@Jordan作出这样的回答,所以我可以给你贷款,请。 – StealthRT 2013-05-01 14:57:33

+0

你能显示你的ajax代码吗? – tymeJV 2013-05-01 14:57:36

回答

2

请参阅jQuery.ajaxComplete()事件处理程序。这将做你想要的。

例子:

jQuery(document).ajaxComplete(function() { 
    jQuery('#moreDetailsTable').slideUp("fast", function() {}); 
}); 
+0

再次感谢您的帮助,乔丹。 – StealthRT 2013-05-01 15:27:38

+0

没问题!很高兴我能帮上忙。 – Jordan 2013-05-01 15:28:09

0

ajax返回时调用该函数。加载内容后。例如:

$('.ajaxLoading').show(); 
    $.ajax({ 
    type:'POST', 
    url:'url', 
    dataType: "json"}).done 
    (function(response){ 
     alert(response.message); 
     $('.ajaxLoading').hide(); 
     //window.location = "/dash_board"; 
      $('#moreDetailsTable').slideUp("fast", function() {}); 
    }).fail(function(response,textStatus){ 
     alert('Something goes wrong. Please try again.'); 
     $('.ajaxLoading').hide(); 
     //alert(textStatus); 
    }); 
+0

感谢我的问题重播,何塞。 – StealthRT 2013-05-01 15:28:00