赞
踩
前提:通过导航定位位置时,点击事件 用到a的href的hash,但需要取消a的默认动作,需要得到点击元素的event对象
html 代码
- <li v-for="(item,i) in navList" :key="i" @click="navPosition(item)">
- <a :class=item.className :href=item.href>
- <span>{{item.name}}</span>
- </a>
- </li>
navPosition方法 :
- navPosition(data) {
- event.preventDefault();
- var target = data.href;
- console.log(target)
- //jquery动画
- $('html, body').animate({
- scrollTop: $(target).offset().top
- }, 500);
- }
问题 :event 的值为 undefind
解决:
1.当@click="navPosition" 方法名没有() 时 ,可以得到event;
2.当@click="navPosition(data)" 使用圆括号,必须显式的传入event对象,如果不传入可能最终找到的是全局的window .event
即:本例解决代码如下
- <li v-for="(item,i) in navList" :key="i" @click="navPosition(item,$event)">
- <a :class=item.className :href=item.href>
- <span>{{item.name}}</span>
- </a>
- </li>
- navPosition(data,event) {
- event.preventDefault();
- var target = data.href;
- //jquery动画
- $('html, body').animate({
- scrollTop: $(target).offset().top
- }, 500);
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。