父页面调用子页面的function 的小坑

本文介绍了一种在父页面中调用子页面方法的技巧,通过将一系列操作拆分为两步,先获取iframe的内容窗口,再调用子页面的方法,解决了常见的连贯操作失败的问题。

不少写前端的都会在父页面去拿子页面的方法,网上几乎都是这样:

$("#ifm")[0].contentWindow().iClick();

将这些连成了一长串,我试了半天还是不行,然后我就拆开来用了;

var contentWindow = $("#ifm")[0].comtentWindow;

contentWindow.子页面方法();

然后就好用了哈哈

### 微信小程序钱包页面开发教程及示例代码 在微信小程序中实现钱包页面,通常需要结合支付接口、用户余额查询、交易记录展示等功能。以下是关于如何开发一个完整钱包页面的详细说明。 #### 1. 钱包页面功能模块 钱包页面的核心功能包括: - 用户余额展示 - 支付历史记录列表 - 充值功能集成 - 提现功能(如果适用) 这些功能可以通过调用微信支付接口以及后端服务来实现[^1]。 #### 2. 页面布局设计 使用Flexbox或Grid布局技术可以提高页面布局的灵活性和响应性。对于样式管理,推荐使用CSS预处理器如SASS或LESS,以确保样式的一致性和可维护性[^3]。 以下是一个简单的钱包页面布局示例代码: ```html <view class="wallet-container"> <view class="balance-section"> <text>当前余额:</text> <text class="balance">{{balance}} 元</text> </view> <view class="transaction-list"> <block wx:for="{{transactions}}" wx:key="id"> <view class="transaction-item"> <text>{{item.description}}</text> <text class="amount">{{item.amount}} 元</text> </view> </block> </view> <button bindtap="recharge">充值</button> </view> ``` #### 3. 后端支付接口集成 为了实现充值功能,可以参考微信支付云函数的实现方式。以下是一个简单的云函数示例代码,用于处理支付请求[^4]: ```javascript const cloud = require('wx-server-sdk'); cloud.init(); const tenpay = require('tenpay'); const config = { appid: '微信小程序appid', mchid: '商户号一般是10位', partnerKey: '密钥,可以重设的,最好重设,这里是支付的一个坑', notify_url: '随便填写一个公网可以访问的地址,如百度首页', spbill_create_ip: '127.0.0.1' }; exports.main = async (event, context) => { const wxContext = cloud.getWXContext(); const { total_fee } = event; const api = tenpay.init(config); const nonceStr = Math.random().toString(36).substr(2, 15); const timeStamp = parseInt(Date.now() / 1000) + ''; const out_trade_no = "otn" + nonceStr + timeStamp; const result = await api.getPayParams({ out_trade_no: out_trade_no, body: '充值', total_fee: total_fee, openid: wxContext.OPENID }); return result; }; ``` #### 4. 前端逻辑实现 前端需要通过调用云函数来触发支付流程,并监听支付结果。以下是一个简单的前端代码示例: ```javascript Page({ data: { balance: 0, transactions: [] }, onLoad: function () { this.fetchBalance(); this.fetchTransactions(); }, fetchBalance: function () { // 调用后端接口获取余额 wx.cloud.callFunction({ name: 'getBalance', success: res => { this.setData({ balance: res.result.balance }); } }); }, fetchTransactions: function () { // 调用后端接口获取交易记录 wx.cloud.callFunction({ name: 'getTransactions', success: res => { this.setData({ transactions: res.result.transactions }); } }); }, recharge: function () { wx.cloud.callFunction({ name: 'pay', data: { total_fee: 100 }, // 示例金额为1元 success: res => { wx.requestPayment({ ...res.result, success: () => { console.log('支付成功'); this.fetchBalance(); }, fail: () => { console.log('支付失败'); } }); } }); } }); ``` #### 5. 数据库设计 为了存储用户的余额和交易记录,可以在后端数据库中创建相应的表结构。例如,使用MongoDB时,可以设计如下集合: - **users**:存储用户信息,包括`balance`字段。 - **transactions**:存储交易记录,包括`userId`、`amount`、`description`等字段。 #### 6. 测试与兼容性 在开发过程中,需要对不同版本的微信客户端进行测试,确保页面在各种设备上都能正常显示。可以使用微信开发者工具中的多终端模拟功能来完成这一任务[^3]。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值