富百世 2016-07-02 15:59 采纳率: 0%
浏览 1089
已采纳

jquery之自动补全相关问题3

各位大神:
近日在学习jquery相关知识,按教学视频写一个web程序,程序文件已经分享到百度云盘,下载网址为:https://pan.baidu.com/s/1geIkYYn。请大神下载后解压运行里面的文件index.html。由于我在index.js文件中写了
var host=['aa','aaaa','aaaaaa','bb'];
$('#email').autocomplete({
source : host
});

所以用浏览器打开index.html后,点击邮箱文本框,按教学视频所讲应出现如下界面
图片说明
出现自动补全功能,但我在电脑上运行上传到云盘上的代码却不能出现自动补全功能。
针对此问题网友“无聊码农”的解决方案是dialog和autocomplete的初始化换个位置,autocomplete放到dialog后面,要不autocomplete生成的层z-index小于dialog的导致被覆盖了看不到下拉效果。
而网友“当作看不见”的解决方案是将代码
var host=['aa','aaaa','aaaaaa','bb'];
$('#email').autocomplete({
source : host
});
外面套个$(function() {和});写成
$(function(){
var host=['aa','aaaa','aaaaaa','bb'];
$('#email').autocomplete({
source : host
});
});
两种方案均能解决问题,第一种解决方案很好理解。但第二种解决方案我就是纳闷了。为什么外面套个$(function() {和});就能解决了呢?是不是外面套个$(function() {和});的代码比不套$(function() {和});代码理论上晚执行呢?请指教。谢谢!

  • 写回答

5条回答 默认 最新

  • 当作看不见 2016-07-02 16:37
    关注

    为什么外面套个$(function() {和});就能解决了呢?是不是外面套个$(function() {和});的代码比不套$(function() {和});代码理论上晚执行呢?
    是没有错的,$(function(){})===$(document).ready(fucntion(){}),是在文本加载完之后才会执行,在你没有加它之前,会按顺序加载,但是加载完后会被后面所加载的内容覆盖掉,而加了之后会等文本加载完成之后再执行,所以他就在最上层了,不会被覆盖掉了,求采纳........

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题