jQuery   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jquery-ui – JQuery UI自动完成语法大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
有人可以帮我理解下面的代码吗?我发现它 here.

它利用了远程源的JQuery UI Autocomplete.我尽可能地评论代码,然后是一个更精确的问题.

$( "#city" ).autocomplete({
        source: function( request,response )  {
//request is an objet which contains the user input so far
// response is a callback expecting an argument with the values to autocomplete with
            $.ajax({
                url: "http://ws.geonames.org/searchJSON",//where is script located 
                dataType: "jsonp",//type of data we send the script
                data: { //what data do we send the script 
                    featureClass: "P",style: "full",maxRows: 12,name_startsWith: request.term
                },success: function( data ) { //CONFUSED!
                    response( 
                        $.map( 
                        data.geonames,function( item ) { 
                                            return {
                                                    label: item.name+(item.adminName1 ? ","+item.adminName1:"")+","+item.countryName,value: item.name
                                            }
                                        }
                        )
                    );
                  }
            });
        }
    });

如您所见,我不理解成功函数和响应回调的使用.

我知道success function literal是一个AJAX选项,在AJAX查询返回时调用.在这种情况下,它似乎封装了对响应回调的调用?哪个定义在哪里?我认为根据回调的定义,它应该自己调用

谢谢!

解决方法

文档(“概述”页面)定义的响应对象:

所以,’response’参数实际上是一个回调函数,必须在自动完成项的ajax检索成功时调用它.

由于您的数据将通过AJAX返回,因此您的代码必须手动更新小部件. jQueryUI提供了一个参数作为函数,以便您的代码可以通过调用函数来执行该更新.

您可以在用于source选项的函数声明中看到定义的响应对象:

source: function( request,response )

您甚至可以将AJAX调用从等式中取出并执行以下操作:

source: function(request,response) {
    response([{label:'foo',value: 'foo'},{label:'bar',value:'bar'}]);
}

将立即使用窗口小部件的标签/值对数组调用响应回调.

大佬总结

以上是大佬教程为你收集整理的jquery-ui – JQuery UI自动完成语法全部内容,希望文章能够帮你解决jquery-ui – JQuery UI自动完成语法所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: