在你的vue组件中,可以通过@clicknative处理table行点击事件,然后在该函数中通过eventcurrentTargetrowIndex获取到当前点击的行的索引,从而判断点击的是哪一行。
修改字母索引组件,绑定三个 touch 事件,分别是 touchStart 、 touchMove 、 touchEnd 。
只有当 touchstart 之后,才执行 touchmove 里的内容,所以在 data 里定义一个标识位 touchStatus ,默认值为 false ,
当手指触摸的时候,标识位的值为 true ,结束滑动的时候,标识位的值为 false 。只有当标识位的值为 true 的时候,才去执行 move 事件的处理。
然后要做的一件事就是,当我们在字母索引处上下滑动的时候,现在所在的位置是第几个字母。
如果想根据下标,找到下标对应的字母的话,首先得有个数组存储字母的列表。但是现在 cities 是个对象,并不是个数组,所以我们需要一个数组。
在 computed 计算属性中定义一个 letters
首先绑定一下 dom 元素:
我是浏览器测试图:
此时在索引处拖动的时候,控制台不停的打印一个值,这个值就是A字母顶部距离红色区域最下沿的高度(红色区域是指的搜索框)。
得到这部分高度之后,用这部分高度 - 第一步得到的 高度,算差值。这个差值是当前手指的高度 到 A字母的高度,然后用这个差值 除以 每个字母的高度,我这里每个字母的高度是 40,所以有下图:
到这里为止!!!列表和索引的监听终于做完啦~~~
最近遇到一个问题,在循环商品列表时,因为数组的第一个是商品的品牌介绍,所以循环时不能直接循环,只能从第二个元素开始。
方案1:从数据源头更改,后端直接在列表里去除第一个数组元素。但前端还是需要在别的地方展示品牌信息,故不好去除。(至于为何品牌信息需要和商品混合在一起,原因是业务问题。以前是给APP上展示的。)
方案2:循环时,列表切割
方案3:利用v-if,因为它的优先级低于v-for
方案4:利用method,返回新数组,其实也是切割和第二种类似
方案5:利用computed
你在onchange=""中写上alert(thisvalue)试试,就知道了
这儿的thisvalue就是当前值
要是想用其它函数,那就是“其它函数(thisvalue)”
在vue项目中,当我们用v-for遍历select下的option时,我们想通过给option添加点击事件来获取我们所遍历的对象,却发现我们的点击事件根本不触发
那么我们怎样才能把我们想要的值传递过去呢?我们需要在select上绑定一个v-model,在data里定义一个v-model所绑定的空值,然后通过change事件将这个空值传递过去,然后我们在option上绑定value属性,在value上绑定你要传递的值(也可以是当前对象的下标或者id),然后在change事件中接收你传过来的值,就可以了
vue官网也对这部分进行了介绍: 详见官网
是一个自己总是记不太清的属性:
几个相同的元素,添加同样的一个点击事件处理程序来做处理,需要将元素自身
传递给事件处理程序来改变元素自身的一些属性,或者行为:
Tab(num,event){
var e = eventcurrentTarget // 这样获取到的是被点击的元素自身
var c = eventtarget // 这样获取到的是点击元素的子元素
}
子
可以通过这样的方法来获取的,具体如下:
v-for=(item,index)in 需要循环的列表对象就可以达到目的了,而在括号里面的参数item是循环的每一个元素,index参数是循环的次数或者是下标的,item可以是一个简单数据类型,也可以是一个复杂的复合类型。
以上就是关于vue中table点击事件怎么知道点的是哪一个全部的内容,包括:vue中table点击事件怎么知道点的是哪一个、Vue实现类似通讯录功能(下)、Vue列表循环从指定下标开始,从第二个开始遍历等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)