2017-11-02 9 views
1

こんにちは、私はちょうどvuejsとそのイベントをリストで学習しています。 imはコンポーネント(この例ではdiv)をツールチップとして表示/非表示にするにはどうすればいいですか?vuejsはすべてのツールチップを表示するツールチップを作成します

私はこの

<ul id="example-1"> 
    <li v-for="item in items"> 
    <div v-on:mouseover="tooltipActive = !tooltipActive">hover me</div> 
    <div class="tooltip" v-if="tooltipActive">{{ item.name }}</div> 
    </li> 
</ul> 

を行なったし、私はデータにtooltipActive: falseを設定します。問題は、1つのリストアイテムにカーソルを合わせると、すべてのアイテムのすべてのツールチップが表示されます。(もちろん)

この種のサンプルを解決する方法はありますか?

答えて

2

console.clear() 
 

 
new Vue({ 
 
    el: "#example-1", 
 
    data:{ 
 
    items: [ 
 
     {name: "item one"}, 
 
     {name: "item two"}, 
 
     {name: "item three"} 
 
    ], 
 
    activeItem: null 
 
    } 
 
})
li {cursor: pointer}
<script src="https://unpkg.com/[email protected]"></script> 
 
<ul id="example-1"> 
 
    <li v-for="item in items"> 
 
    <div v-on:mouseover="activeItem = item" 
 
      v-on:mouseout="activeItem = null"> 
 
     hover me 
 
    </div> 
 
    <div class="tooltip" v-if="activeItem === item">{{ item.name }}</div> 
 
    </li> 
 
</ul>

+0

ああ意味をなさない!バートに感謝! btwこれはvuejsの正しい考え方ですか? (正直なところ、jqueryコーダーがもっと多く、私のアプローチはとてもjqueryだから) – bondythegreat

+1

@bondythegreatこれは間違いなくvueスタイルのアプローチです。 UIは状態によって駆動されます。 – Bert

関連する問題