我试图滚动到一个特定的元素onclick。但我得到了以下错误。
Uncaught TypeError: element.scrollIntoView is not a function
这是我的剧本
<script setup>
import { ref } from 'vue'
function goTo(refName){
let element = ref(refName);
element.scrollIntoView({behavior: "smooth"})
}
</script>
这是我的点击功能
<DayWithText v-for="day in daysOfWeek" :name="day.shortHand" :day="day.day" :date="day.date" @click.prevent="goTo('test')"/>
这就是元素
<p ref="test">test</p>
我哪里做错了?
2条答案
按热度按时间wtzytmuj1#
ref('test')
不返回<p ref="test">test</p>
。它创建一个新的ref
,初始值为'test'
(字符串)。要得到那一段,你必须声明它为
<script setup>
内部(mount
之前)。在组件安装后的任何时间
会起作用。
演示:
一个一个二个一个一个一个三个一个一个一个一个一个四个一个
在
mount
上,当<template>
解析器找到一个ref
时,它会在setup
作用域中查找具有该名称的声明变量。如果找到了,并且它是一个ref
,则当前DOM元素被放置在该ref的value
中。czq61nw12#
就我而言
超文本标记语言
为我工作