在使用jQuery類庫實現(xiàn)tab功能時,是獲取鼠標在mousenter或click時的index值,然后切換到當(dāng)前的標題和內(nèi)容,把其他的標題和內(nèi)容的狀態(tài)去掉:
$('.tab .title').find('.item') .removeClass('current').eq(index).addClass('current'); // 為index位置的title添加current$('.tab .content').find('.item') .hide().eq(index).show(); // 顯示index位置的內(nèi)容
那么在使用vue實現(xiàn)tab功能時,就不是像jQuery這種直接操作DOM了。我這里總結(jié)了下實現(xiàn)tab功能的3個思路,僅供參考。
1. 切換content或者直接切換內(nèi)容
這種思路下,我們首先把結(jié)構(gòu)搭建起來,然后用一個變量selected
表示tab當(dāng)前展示的位置,給li標簽添加mouseenter或click事件,將當(dāng)前的index傳遞進去:
html代碼:
<div class="hd"> <ul class="clearfix"> <li v-for="(item, index) of list" :class="{active:selected==index}" @mouseenter="change(index)">{{item.title}}</li> </ul></div><div v-for="(item, index) of list" :class="{active:selected==index, item:true}" v-html="item.content"></div>
js代碼:
var app = new Vue({ el: '#app', data: { selected: 0, //當(dāng)前位置 list: [ { &nb