iT邦幫忙

0

vue3,如何取消button自帶PointerEvent 變數

  • 分享至 

  • xImage

大家好,
我的環境是vite、vue3。

下面是我的code :

<script setup>
    const myId = ref('')
    const myName = ref('')
    const clickBtn = function(id = myId.value,name = myName.value){
        console.log('id',id,'name',name);
    }
</script>

<template>
    <button @click="clickBtn"> 按我</button>
</template>

按下button後,原本預計看到的結果會是'id','','name',''
但是返回的卻是'id',PointerEvent {isTrusted: true, pointerId: 2, width: 1, height: 1, pressure: 0, …} ,'name',''

在不帶任何變數的情況下,第一個變數變成 PointerEvent了。
我試著用stop,結果也是沒用。

<button @click.stop="clickBtn"> 按我</button>

目前改成這樣是可以解決問題,<button @click="clickBtn(myId)">
但有什麼辦法,可以在維持clickBtn不帶變數的情況下,<button @click="clickBtn">,取消程式自動帶入PointerEvent變數呢?

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

0
froce
iT邦大師 1 級 ‧ 2022-08-01 15:45:43
最佳解答
<button @click="clickBtn()">

你不強制傳參進去,vue會自動幫你把event帶入第一個參數,相當於clickBtn(event, )

greenriver iT邦研究生 5 級 ‧ 2022-08-02 07:59:07 檢舉

謝謝

0
bendwarn
iT邦新手 5 級 ‧ 2022-08-02 02:57:34

即使是處理 dom 原生的 event listener,讓他自己呼叫也一定會傳 event 進來。最方便的做法就是給你的 listener 多個規則

const clickBtn = (event, id = myId.value, name = myName.value) => {
}

養成習慣以後看到第一個參數是 event 的函數就知道用途也算另一個好處。

greenriver iT邦研究生 5 級 ‧ 2022-08-02 07:59:26 檢舉

學到一個小撇布 謝謝

我要發表回答

立即登入回答