这就是我所拥有的:
$(document).ready(function(){
//stuff
}).ajaxSend(function() {
$('.overlay').show();
}).ajaxStop(function() {
$('.overlay').fadeOut();
});
我遇到的问题是,我第一次触发ajax动作时效果很好,但之后没有任何时间。我必须重新加载ajaxSend / Stop的页面再次工作。所以说我加载一个页面,点击'加载更多'到ajax加载内容,叠加显示没问题。但是我再次点击它,一切正常,除了模态没有出现在这个时间或之后的任何时间。
任何想法?
答案 0 :(得分:3)
$(document).ready
只会被调用一次 - 加载DOM时。通过ajax加载数据时,这将无效。
两个选项:
首先,如果你可以使用你作为ajax页面加载的一部分加载的id识别div,那么你可以做(编辑):
$('.overlay').ajaxSend(function() {
$(this).show(); });
$('.overlay').ajaxStop(function() {
$(this).fadeOut(); });
或者,您可以完全放弃ajaxStart
和ajaxStop
,并在点击“加载更多”链接时触发它们,例如类似的东西:
$("a").click(function(){
var url = $(this).attr('href');
$(".overlay").show("fast", function(){
$("#targetdiv").load(url + " #div_id", {}, function(){
$(".overlay").fadeOut();
})
})
return false;
});