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

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕星星 2019-05-07 18:53:40

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

http://img1.sycdn.imooc.com//climg/5cd162af000182df03610042.jpg

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

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

http://img1.sycdn.imooc.com//climg/5cd163360001177104090071.jpg

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

http://img1.sycdn.imooc.com//climg/5cd16343000181c103450042.jpg

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

http://img1.sycdn.imooc.com//climg/5cd162ea00018b7b08070306.jpg

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

好帮手慕星星 2019-05-07 14:14:01

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

http://img1.sycdn.imooc.com//climg/5cd121f50001303407100224.jpg

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

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

祝学习愉快!

  • 提问者 qq_七分_imsUX0 #1
    我有比对源码,没有看出不一样的地方。用源码跑这个页面也会出现这个。 我的代码: (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(); })();
    2019-05-07 18:30:11
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
3.WebAPP开发与小程序
  • 参与学习           人
  • 提交作业       622    份
  • 解答问题       6815    个

微信带火了小程序,也让前端工程师有了更多的展现机会,本阶段带你从移动基础知识的学习到webAPP开发,及小程序开发,让你PC端与移动端两端通吃。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师