选项卡切换问题

来源:5-6 项目作业

慕斯_Irice368

2019-08-05 17:08:20

 <div class="floor-head">

                <h2 class="floor-storey fl"><a href="javascript:;">1F</a>米面粮油</h2>

                <div class="floor-title fr">

                    <a href="javascript:;" target="_blank" class="tab tab-one link">综合</a>

                    <span class="break"></span>

                    <a href="javascript:;" target="_blank" class="tab tab-one link">干果</a>

                    <span class="break"></span>

                    <a href="javascript:;" target="_blank" class="tab tab-one link">米面粮油</a>

                </div>

            </div>

  1. 老师楼层中分类选项卡    $(".floor-title .tab")获取是虽然获取到了3个,但是当实际点击的时候索引是5个 使用调试发现是因为.floor-title里面有5个子元素的原因(点击第二个选项卡,获取索引为2,第三个选项卡,获取索引为4),只能使用if判断方式来获取,方式写死了,如何准确获取到.tab和索引与div下面的3个ul 一 一对应

     $(" .tab").hover(function () {

           var i = 1;

           if ($(this).index() == 4) { i = 2 };

           if ($(this).index() == 0) { i = 0 };

             $(this).addClass("tab-active");

             $(".floor-body>ul").eq($(this).index() - i).show().siblings().hide();

       }, function () {      

             $(this).removeClass("tab-active");



    作业中两个楼层我直接copy一楼层 (标签完全相同,只是文字 图片不同)

    发现 二楼的tab选项卡的背景hover有发生变化(多出箭头),但是floor-body发生变化的一楼的内容  而非二楼中的(二楼floor-body毫无变化),出现相互影响的情况,只能再取其他class名称,写两个jquery代码(分楼层),不能共用一个吗

  2. http://img.mukewang.com/climg/5d47f1fd000158fb10380873.jpg

写回答

5回答

好帮手慕慕子

2019-08-06

同学你好, 老师结合你上一个问题的粘贴的部分代码测试了一下

首先, 我们需要了解, $(this).index()是获取元素在当前同级元素中的索引值, 然后在结合同学的代码给同学分析问题

  1. 先打印一下使用$('.floot-title .tab')获取的元素,包括一楼和二楼的选项卡, 一共是六个哦

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

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

     (1)$(this).index()获取的是类名为tab元素的在同级元素中的索引值

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

    可以在鼠标移入的时候,打印一下index值查看一下

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

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

    (2)分析原因后, 我们来想解决方法。 老师提供一个简单的思路

    先第一楼层为例, 给每个选项卡设置自定义属性data-index值

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

    鼠标移入的时候, 通过获取链接上的自定义属性值, 显示对应的内容即可

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

  2. 因为使用jQuery选择器会选择页面上所有满足条件的元素,导致一层和二层的效果相互受到影响。

    老师这里给同学提供一个简单的参考思路, 可以将鼠标移入事件, 封装成一个函数,然后传入不同的楼层名字, 这样就不会发生冲突了, 另,需要主要,第二楼层的选项卡的a链接也需要在标签中设置data-index属性哦

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

综上,老师根据同学的这部分代码给出了一个参考的解决方案,由于不确定同学的项目中是否有其他代码会对这一块造成影响, 如果无法解决同学的问题, 可以再次提问, 我们会继续为您解答的。

另, 对于每一阶段的作业,我们可能无法从同学粘贴的部分代码中准确的找到问题所在,因为有时候代码出现问题, 并不是代码所在行有问题, 可能是其他行出现了错误造成这一段代码该实现的效果没有实现,为了更准确帮助同学解决问题, 所以才会建议同学在作业写完了,将自己不明白的标注上,然后将项目打包压缩上传作业, 批复作业的老师也会针对你的整体项目给出详细的解答的。

希望能帮助到了你,祝学习愉快, 望采纳!

1

慕斯_Irice368

提问者

2019-08-06

追彩虹的小狐狸 老师 你已经解决了我的问题了  上一位老师一直让我不停黏贴代码  代码数又超过 页面卡死 都崩溃了  只有简写描述问题 结果还是让我黏贴代码 问题一直得不到解决 就感到无语

谢谢 追彩虹的小狐狸 老师 !

0

慕斯_Irice368

提问者

2019-08-05

头疼........................................

0

慕斯_Irice368

提问者

2019-08-05

完整的代码完全黏贴不上去 限制了10000个字符,一黏贴页面就卡死 完全一个大bug...........  我所有的都超过了  我一个问题问的很明显 可以直接回答我 完全不需要黏贴代码   让我怎么弄 果然网上和实体老师差别大  

一直让我不停的复制代码 醉了 无语

0

好帮手慕慕子

2019-08-05

同学你好, 你的这个问题好像和另一个问题是一样的,

http://class.imooc.com/course/qadetail/141460 , 

但是两个问题都没有粘贴完整的代码, 所以老师无法准确的找出问题, 另外,很有可能其他的模块也会对此模块产生影响, 所以一定要粘贴完整的代码,这样老师才能为你高效准确的解决问题。如果你觉得代码太多,可以直接提交作业, 在作业中标注清楚问题,批作业的老师也会为你做详细的解答。

祝学习愉快!

0

0 学习 · 14456 问题

查看课程