赞
踩
目录
小程序中绑定事件与在网页开发中绑定事件几乎一致,只不过在小程序不能通过on的方式绑定事件,也没有click等事件,小程序中绑定事件使用 bind 方法,click 事件也需要使用 tap 事件来进行代替,绑定事件的方式有两种:
第一种方式: bind:事件名, bind后面需要跟上冒号,冒号后面跟上事件名,例如: <view bind:tap="fnName"></view>
第二种方式:bind事件名,bind 后面直接跟上事件名,例如:<view bindtap=“fnName"></view>
事件处理函数需要写到 .js 文件中,在.js 文件中需要调用小程序提供的 Page 方法来注册小程序的页面,我们可以直接在 Page 方法中创建事件处理函数。
再开始前,为了保证学习的简洁性,可以先回顾“零基础手把手教你创建微信小程序(一)~(六)”。
重新创建一个如下图模版:
bind:事件名, bind后面需要跟上冒号,冒号后面跟上事件名,例如: <view bind:tap="fnName"></view>。
找到index.wxml文件,写入代码:
<button>绑定事件</button>
此时的绑定事件的按钮,看着不明显,我们可以对其进行更改,一共三种表现形式:
对于按键字体有两种表现形式,默认default:
mini的表现形式如下:
下面我使用的默认,调好字体后,加入事件处理函数:
- <!-- 第一种绑定事件的方式 bind:事件名-->
- <button type="primary" bind:tap="handler">绑定事件</button>
然后在找到.js文件,输入代码:
- // index.js
- Page({
- handler(){
- console.log('事件触发了~~~')
- }
- })
点击“绑定事件”,我们可以看到编辑器下方显示“事件触发了~~~”:
找到index.wxml文件,写入代码,这里为了和第一种按键区分,对其样式进行了改动:
然后在找到.js文件,输入代码:
- hand(){
- console.log('第二种事件触发了~~~')
- }
此时我们发现点击第一个按键能触发绑定,第二种方式生成的按键也能:
index.wxml:
-
- <!-- 第一种绑定事件的方式 bind:事件名-->
- <button type="primary" bind:tap="handler">绑定事件</button>
-
- <!-- 第二种绑定事件的方式 bind事件名-->
- <button type="primary" type="warn" bindtap="hand">绑定事件</button>
index.js:
- // index.js
- Page({
-
- // 事件处理函数需要写到page()方法中
- handler(){
- console.log('事件触发了~~~')
- },
-
- hand(){
- console.log('第二种事件触发了~~~')
- }
- })
为了获取相关对象在打印的时候的一些信息,我们可以用“event”进行获取:
我们可以创建一个输入框,往里面输入值,通过读取输入值,进行更直观的展现,输入代码:
<input type="text"/>
此时我们会发现,并没有输入框,那是因为在小程序中,input输入框默认没有边框,需要自己添加样式。
由于我们后续需要多次使用,所以可以将其放到app.scss文件中(若是没改应该是.wxss,几记得更改为.scss),输入代码:
- input{
- border: 1px solid #ccc;
- }
-
我们可以发现现在还没框,这一点不知道为什么,不过后来发现可以现将1.2的代码注释掉就可以显示了:
对于输入值的获取,我们可以给input绑定一个事件处理函数:
<input type="text" bindinput="getInputVal" />
然后在找到.js文件,进行定义这个事件处理函数,输入代码:
- getInputVal(event){
- console.log(event.detail.value)
- }
在框内输入想要输入的值:
index.wxml:
-
- <!-- 第一种绑定事件的方式 bind:事件名-->
- <button type="primary" bind:tap="handler">绑定事件</button>
-
- <!-- 第二种绑定事件的方式 bind事件名-->
- <!-- <button type="primary" type="warn" bindtap="handler">绑定事件</button> -->
-
- <!-- 在小程序中,input输入框默认没有边框,需要自己添加样式 -->
- <input type="text" bindinput="getInputVal" />
index.js:
- // index.js
- Page({
-
- // 事件处理函数需要写到page()方法中
- handler(event){
- // console.log('事件触发了~~~')
- console.log(event)
- },
-
- getInputVal(event){
- console.log(event.detail.value)
- }
- // hand(){
- // console.log('第二种事件触发了~~~')
- // }
-
-
- })
app.scss:
- input{
- border: 1px solid #ccc;
- }
-
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。