繁体   English   中英

在成功的Ajax响应后启动jQuery行?

[英]Initiate a jQuery line after a successful Ajax response?

我试图在成功的Ajax响应之后启动一些jQuery( $('#slider').leanSlider(); )。 将其放入成功回调中不起作用。 我在这里找到了一个我认为与之相关的答案 ,但是我很难理解我到底要做什么。 成功的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();
});

您链接到的答案不适用于此处。 如果在projectShow()调用之后有代码,则将适用。 由于相关代码位于回调中,因此仅在成功时执行。

我注意到代码中的花括号不可用,所以这可能是第一个问题。 大括号return false;之前return false; 关闭回调,这会使整个配置对象无效。 如果不是复制和粘贴错误,它将阻止进行呼叫。

检查您的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 },
        }).done(function(response){
            $('#project-container').html(response);
            $('#slider').leanSlider();    <--// This isn't initiating
            return false;
        }).fail(function(error){
            //handle error
        });
    }
    projectShow();
});

.done()表示成功jQuery.ajax处理继续响应:“成功:”还是“ .done”?

“ jqXHR.done(function(data,textStatus,jqXHR){});成功回调选项的替代构造,.done()方法代替了不推荐使用的jqXHR.success()方法。有关详细信息,请参考deferred.done()实施细节。”
http://api.jquery.com/jquery.ajax/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM