【问题标题】:Jquery questions about callback of ajaxjquery关于ajax回调的问题
【发布时间】:2014-10-27 18:35:35
【问题描述】:

见以下代码sn-p:

$("#someid").autocomplete({
    source: function (req, resp) { 
        $.ajax({
            url: "/api/someapi", 
            type: "GET",
            dataType: "json",
            data: { id: req.someid },
            beforeSend : function()
            {

            },
            success: function (data) {
                resp($.map(data, function (item) {
                    return {
                        label: "<div class='result'>" + item.name + "</div>",
                        value: item.Name,
                        emailName: item.EmailName
                    };
                }));
            }
            }
        });
    });

我的问题如下:

  1. ajax 调用的来源是一个函数 - function(req, resp) - jQuery 是否接受具有两个参数的函数作为源数据提供者?这是默认的吗?
  2. 谁能解释一下成功后的功能:?基本上,我可以得到它使用来自 ajax 响应的数据;将每个数据映射到一个带有一些 CSS 装饰的项目。但我的问题是:用 resp 包装 $.map 的目的是什么?
  3. 我们可以看到这段代码 sn-p 中有几个回调。然而,由于我对 jQuery 很陌生,我想知道如何确定每个回调传递多少参数,比如在 source: 之后我们可以有一个带有两个参数的回调;在 $.map 之后,我们可以有另一个只有一个参数的回调?

【问题讨论】:

    标签: javascript jquery ajax


    【解决方案1】:
    1. 是的,我们可以传递多个参数,这取决于被调用的事件及其定义方式。
    2. 成功是调用 Ajax 以实现自动完成功能的回调。
    3. 您应该在 jQuery 网站上阅读此类函数的文档。

    jQuery API Doc

    【讨论】:

    • 谢谢,阿普尔。你认为文档是唯一的出路吗?
    • 它将帮助您更好地理解jQuery的功能。但是,您应该阅读 jQuery 代码以了解它们如何定义事件及其默认回调。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 2011-08-28
    • 1970-01-01
    • 1970-01-01
    • 2018-04-15
    • 1970-01-01
    相关资源
    最近更新 更多