LoginSignup
0
0

More than 1 year has passed since last update.

DOMイベントごと変数で渡す

Last updated at Posted at 2021-05-05

特別な $event変数を使うことでメソッドにDOMイベントを渡すことができます。

<body>
  <script src="https://cdn.jsdelivr.net/npm/vue@2.6.12/dist/vue.js"></script>
  <div id="example">
    <p>{{ message }}</p>
    <button @click="say('こんちわ', $event)">こんにちは</button>
  </div>
<script>
let app = new Vue({
  el: '#example',
  data: {
    message: '挨拶'
  },
  methods: {
    say:function(message, event){
      console.log(event)
      this.message = message
    }
  }
})
</script>
</body>

20210505-154331.png

ボタンを押すと
20210505-154344.png

上を使って前の回のクリックカウントを2の倍数で表示させます。

<body>
  <script src="https://cdn.jsdelivr.net/npm/vue@2.6.12/dist/vue.js"></script>
  <div id="app">
      <p>現在{{ number }}回クリックされています</p>
      <button v-on:click="countUp(2)">カウントアップ</button>
</div>
<script>
  new Vue({
    el: '#app',
      data: { 
          number: 0
        },
      methods: {
        countUp: function(times) {
          this.number += 1 *times
        }
      }
  })
</script>
</body>

20210505-155837.png

上を使って前の回のXY座標のコードを10で割って表示させます。

<body>
  <script src="https://cdn.jsdelivr.net/npm/vue@2.6.12/dist/vue.js"></script>
  <div id="app">
      <p v-on:mousemove="mousePosition(10, $event)">マウスを乗せてください</p>
      <p>X:{{x}}、Y:{{y}}</p>
</div>
<script>
  new Vue({
    el: '#app',
      data: { 
          number: 0,
          x:0,
          y:0
        },
      methods: {
        mousePosition: function(divideNumber, event) {
          this.x = event.clientX / divideNumber;
          this.y = event.clientY / divideNumber;
        }
      }
  })
</script>
</body>

20210505-154715.png

座標が10で割った値となりました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0