为了账号安全,请及时绑定邮箱和手机立即绑定

vue使用数据驱动思想达成操作dom?

vue使用数据驱动思想达成操作dom?

慕莱坞森 2019-03-06 14:14:00
html结构:<ul>    <li>        <div class="show">            <img src="1.png" alt="主要内容图片">            <p>标题1</p>        </div>        <div class="hide">            <p>主要内容1</p>        </div>    </li>    <li>        <div class="show">            <img src="2.png" alt="主要内容图片">            <p>标题2</p>        </div>        <div class="hide">            <p>主要内容2</p>        </div>    </li>    <li>        <div class="show">            <img src="3.png" alt="主要内容图片">            <p>标题3</p>        </div>        <div class="hide">            <p>主要内容3</p>        </div>    </li></ul>因为结构内容大部分是不用变化的数据,所以采用直接写死的办法,并没有使用循环。页面结构是默认显示所有li标签下所有具有show样式的div,那么如何通过点击对应的li标签,将具有hide样式的div显示出来,同时其他hide样式的div隐藏呢?现在通过vue数据驱动思想如何实现呢?
查看完整描述

3 回答

?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

立个flag,用v-show控制隐藏显示,或者根据flag选择class
这里的flag就是数据,这里不用循环写得会很麻烦。

查看完整回答
反对 回复 2019-03-29
?
红颜莎娜

TA贡献1842条经验 获得超12个赞

增加一个activeIndex


<li v-for="(item,index) in something" :key="index" @click="activeINdex=index">

<div class="show" v-show="activeIndex!=index?true:false">

            <img src="3.png" alt="主要内容图片">

            <p>标题3</p>

        </div>

        <div class="hide" v-show="activeIndex==index?true:false">

            <p>主要内容3</p>

        </div>


</li>


查看完整回答
反对 回复 2019-03-29
?
繁花不似锦

TA贡献1851条经验 获得超4个赞

第一种方法:IsShow需要在data里定义;通过单击事件触发来改变IsShow值;hide隐藏属拼写不知道对不对,但是冒号一定不能丢,
<div class="show" :hide='IsShow'>
<div class="hide" :hide='!IsShow'>
第二种方法:
标签上加上 v-if/v-show 然后通过单击事件触发都可以实现

第三种方法:
v-band:class绑定一个动态的class而不是一个写死的class,然后通过点击事件来触发,然后在css中定义样式,这种比较复杂
以上属个人经验及观点,若有不同请指教


查看完整回答
反对 回复 2019-03-29
  • 3 回答
  • 0 关注
  • 629 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号