点击首页左上角城市名,跳转到城市列表页面,在城市列表页面中选择城市,选择完毕后,回到首页,更新首页左上角城市名称。
实现思路:
新建一个城市列表页。pages/citylist/citylist。完成基础结构与样式。
在列表页中显示所有的城市。
在列表页实现左侧边栏导航,点击导航字母,自动滚动到相应位置。
可以借助于scrollView的scroll-into-view属性动态修改滚动位置:
<scroll-view scroll-into-view="A">
<view id="A">....view>
<view id="B">....view>
<view id="C">....view>
<view id="D">....view>
<view id="E">....view>
scroll-view>
点击城市名称,选择某一个城市,将城市名称存入App.globalData。返回首页。
在首页中重写onShow()方法,读取App.globalData中的数据,更新左上角即可。
index.js中复制一个getLocCity方法到citylist页面。onLoad中调用该方法,将城市名称存入data.cityname。{{cityname}}显示城市名。text。将城市名存入globalData。返回首页。首页自动在onShow中将数据显示在左上角。event.target与event.currentTarget的区别event.target: 触发该事件的最底层的元素。
event.currentTarget:绑定该事件的元素。
<view class="v1" bindtap="tapv1">
<view class="v2">view>
view>
tapv1(event){
event.target
event.currentTarget
}
问题:如果点击了v2,触发了tap事件,执行tapv1(冒泡现象):
event.target: 指的是v2. 因为点击事件的最底层元素就是v2.
event.currentTarget: 指的是v1, 因为该事件绑定在v1元素上。
问题:如果点击了v1,触发了tap事件,执行tapv1:
event.target: v1. 因为点击事件的最底层元素就是v1.
event.currentTarget: v1, 因为该事件绑定在v1元素上。