2017-11-21 1 views
1

イメージサムネイルの説明を非表示にして表示する機能を作成しています(ユーザーがイメージサムネイルをクリックすると説明がアニメーション化されます)。私はVueJSのチュートリアルに移行についてはすでに従っていましたが、残念ながら1つのサムネイルしか動作せず、残りの部分は動作しません。私はすでにtry and errorsの間にスクリプトを削除しました。だから、(私は今のjqueryの構文を思い出すことができないので、擬似コード)の例としてはjQueryのスクリプトを見てみましょう:vue jsの複数の要素をクリックする

<div id="app"> 
    <p> 1 </p> 
    <p> 2 </p> 
</div> 

jQuery("#app p").click(function(){ 
     alert(p.text); 
    }); 

我々はそれだけでスクリプトが必要とalert(p.text)は、それに基づいて異なる値を持つユーザーがクリックした<p>と私たちはそれぞれのスクリプトを書く必要はありません<p>

VueJSでの操作方法は?一言で言えば、VueJSの1つのインスタンスを多くの要素に対してクリックイベントで適用する方法が混乱しています。

+0

共有ライブデモまたは任意のフィドルのようにしたいですか?あなたの与えられたコードでは、関連するvuejsはありません – C2486

+0

私はどんなフィドルも持っていません。私はjQueryスクリプトが私が何をしようとしているのかを説明することを願っています。一言で言えば、私は多くの要素に対してvue jsの1つのインスタンスを適用する方法が混乱しています。 – Kakashi

答えて

0
<template> 
    <div> 
    <p v-for="item in numbers" @click="fun(item)">{{item}}</p> 
    </div> 
</template> 

<script> 
export default { 
    data() { 
    return { 
     numbers:[1,2,3,4,5] 
    } 
    }, 
    methods:{ 
    fun:function(number){ 
     alert(number); 
    } 
    } 
} 
</script> 

私はMVCとMVVMの違いがあります。

+0

はい。それはjQueryより難しく、より複雑です。 jQueryはわずかなスクリプトだけでこの問題を解決することができます。またはjQueryとVue jsは異なる目的のために作成されましたか? – Kakashi

+0

配列に10000の数値が含まれている場合は?簡単なデモではVUEを使用しないでください。コードが複雑な場合は、MVVMフレームワークが役立ちます。このフレームワークの貢献はフロントエンドとリアエンドを分けることで、フロントエンドのエンジニアは過去よりも多くのことを行うことができると私は考えています。 – Yuchuan

0

は、あなたがこの

var V = new Vue({ 
 
    el:"#app", 
 
    data:{ 
 
    items:[ 
 
     {name:'Test1',desc:'test1 Desc',show:false}, 
 
     {name:'Test2',desc:'test2 Desc',show:false}, 
 
     {name:'Test3',desc:'test3 Desc',show:false}, 
 
    ] 
 
    } 
 
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.7/vue.js"></script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="app"> 
 
    <div v-for="item in items"> 
 
    <span @click="item.show = !item.show">{{item.name}}</span> 
 
    <span class="" v-if="item.show">: {{item.desc}}</span> 
 
    </div> 
 
</div>

+0

私はこのコードを試し、vue jsのトランジションガイドと組み合わせます。ありがとうございました!私が立ち往生すれば、私はもう一度元気になるだろう。ありがとうございます – Kakashi

+0

vueがどのくらい多くの子要素(項目)を持っていない場合はどうなりますか?私はスパン要素が配列のJavaScriptからのループからではなく、従来の方法(PHPからのループ)によってレンダリングされたことを意味します。 – Kakashi

+0

あなたはPHPから持っているデータを共有しますか? – C2486

関連する問題