照着源码敲的,为什么会出现这个bug?

来源:2-15 首页-底部菜单(2)

qq_七分_imsUX0

2019-05-07 11:14:17

http://img.mukewang.com/climg/5cd0f8010001a54506860207.jpg

写回答

2回答

好帮手慕星星

2019-05-07

你好,测试了源码确实是有问题的,是因为打开项目默认地址后面没有html文件:

http://img.mukewang.com/climg/5cd162af000182df03610042.jpg

而代码中对地址进行了分隔,page获取的是分割后的html文件名,开始没有文件名就会报错。

如果点击首页按钮就不会报错了:

http://img.mukewang.com/climg/5cd163360001177104090071.jpg

因为地址栏中出现了文件名:

http://img.mukewang.com/climg/5cd16343000181c103450042.jpg

可以在代码中加一个判断,如果page存在的话再调用:

http://img.mukewang.com/climg/5cd162ea00018b7b08070306.jpg

可以测试下,祝学习愉快!

0

好帮手慕星星

2019-05-07

你好,这是语法错误,你可以看看bottomBar.js文件中:

http://img.mukewang.com/climg/5cd121f50001303407100224.jpg

这几行是否有写错的地方,可以下载源码,和源码中对比一下区别,是哪里写错了。

如果自己找不到,可以将这个文件的代码粘贴上来,老师帮助你看一下。

祝学习愉快!

0
hq_七分_imsUX0
h 我有比对源码,没有看出不一样的地方。用源码跑这个页面也会出现这个。 我的代码: (function () { var itemTmpl = '<a class="$key btn-item" href="$key.html"><div class="tab-icon"></div><div class="btn-name">$text</div></a>'; function init() { var items = [{ key: 'index', text: '首页' }, { key: 'order', text: '订单' }, { key: 'my', text: '我的' }]; var str = ''; items.forEach(function (item, index) { str += itemTmpl.replace('$key', item.key) .replace('$text', item.text); }); $('.bottom-bar').append(str); var arr = window.location.pathname.split('/'); var page = arr[arr.length - 1].replace('.html', ''); $('a.' + page).addClass('active'); } init(); })();
h019-05-07
共1条回复

0 学习 · 6815 问题

查看课程