我试图在成功的Ajax响应之后启动一些jQuery($('#slider').leanSlider();
)。把它放在成功的回调中是不行的。我发现answer here我认为是相关的,但我很难理解我到底要做什么。在成功进行Ajax响应后,如何才能启动该行?
$('.post-link').click(function(e) {
e.preventDefault();
var post_id = $(this).attr('rel'),
ajaxURL = site.ajaxurl;
function projectShow() {
$.ajax({
type: 'POST',
url: ajaxURL,
data: {'action': 'load-content', post_id: post_id },
success: function(response) {
$('#project-container').html(response);
$('#slider').leanSlider(); <--// This isn't initiating
}
return false;
}
});
}
projectShow();
});
答案 0 :(得分:1)
您链接的答案不适用于此处。如果您在projectShow()
电话后有代码,则适用。由于有问题的代码在回调中,它只会在成功时执行。
我注意到代码中的大括号已关闭,因此这可能是第一个问题。 return false;
之前的大括号会关闭回调,这会使整个配置对象无效。如果这不是复制和粘贴错误,则会阻止调用。
检查您的AJAX通话是否真的成功并恢复成功。否则,永远不会调用回调。但是,除了语法错误之外,您的代码对我来说还不错。
答案 1 :(得分:0)
$('.post-link').click(function(e) {
e.preventDefault();
var post_id = $(this).attr('rel'),
ajaxURL = site.ajaxurl;
function projectShow() {
$.ajax({
type: 'POST',
url: ajaxURL,
data: {'action': 'load-content', post_id: post_id },
}).done(function(response){
$('#project-container').html(response);
$('#slider').leanSlider(); <--// This isn't initiating
return false;
}).fail(function(error){
//handle error
});
}
projectShow();
});
.done()是成功的jQuery.ajax handling continue responses: "success:" vs ".done"?
&#34; jqXHR.done(function(data,textStatus,jqXHR){});
成功回调选项的替代构造,.done()方法替换了不推荐使用的jqXHR.success()方法。有关实现的详细信息,请参阅deferred.done()。&#34;
http://api.jquery.com/jquery.ajax/