点击首页左上角城市名,跳转到城市列表页面,在城市列表页面中选择城市,选择完毕后,回到首页,更新首页左上角城市名称。
实现思路:
新建一个城市列表页。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元素上。