[英]cannot bind path dynamically on vuejs with router-link and v-for
[英]vuejs mobile router-link prevented by v-on:mouseover
有这个for
:
<li
class="projects-item"
v-for="project in filteredProjects"
:key="project.id"
v-on:mouseover="displayHoverInfo($event, project)"
v-on:mouseleave="hover = false"
>
<router-link v-bind:to="'/project/' + project.slug">
和js:
displayHoverInfo(event, project) {
this.hover = true;
this.hoveredProject = project;
console.log(event);
}
在桌面上工作正常,在移动设备上(点击)只有 v-on:mouseover/v-on:mouseleave 事件被触发。
我在这里偷了答案: https://forum.vuejs.org/t/how-to-disable-mouseover-on-mobile/37335
您可以在移动设备上禁用mouseover
和鼠标mouseleave
。 更进一步,您可以使用用户代理检测它是否实际上是手机/平板电脑。
<li
class="projects-item"
v-for="project in filteredProjects"
:key="project.id"
v-on:mouseover="isMobile ? null : displayHoverInfo($event, project)"
v-on:mouseleave="isMobile ? null : hover = false"
>
new Vue({
el: "#app",
data: {
isMobile: false,
hover: false
},
methods: {
mq() {
this.isMobile = window.matchMedia('(max-width: 400px)').matches;
},
displayHoverInfo($event, project) {
// your method
}
},
created () {
// get initial val
this.mq()
// listen to resize
window.addEventListener('resize', this.mq)
},
beforeDestroy() {
window.removeEventListener('resize', this.mq)
}
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.