小程序
小游戏
企业微信
微信支付
扫描小程序码分享
例如,定义了一个picker组件,运行正常,手动触控它会完美正确执行。但是现在新需求,需要在js里,主动利用程序触发组件,不知道怎么实现。
一般js里可以这样触发
function load(){ //下面两种方法效果是一样的 document.getElementById("target").onclick(); document.getElementById("target").click();}小程序中,不知道怎么触发?
}
小程序中,不知道怎么触发?
5 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
微信小程序页面的脚本逻辑是在JsCore中运行,JsCore是一个没有窗口对象的环境
所以不能使用bom相关的对象。而依赖bom的常用的比如说jQuery就无能为力了。wa正式部署使用webpack打的包,而在打包的过程中,把以下变量给屏蔽了:
window,document,frames,self,location,navigator,localStorage,history,Caches,screen,alert,confirm,prompt,XMLHttpRequest,WebSocket
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
你好,这中间理解可能有误。你所写的是在bindTap函数中怎么区分组件,我想问的是怎么使用程序触发bindTap函数。
当然,这并不是直接调用bindTap方法就行,因为对于tap事件可以这样简单处理,但是对于change事件的组件,就有问题了。因为这类方法被调用时,参数里包含change的具体信息,例如本次change的x,y位置。我直接调用这个函数,没法给这些参数。
我其实想要的就是利用程序,让目标组件真正运行,类似模拟了一次点击触发。document.getElementById("picker-time").onclick();,的确是我想要的方法,真正触动组件工作。但是上面这个方法小程序不支持。
Android app里有类似接口performClick(),也是这个意思。
不知道小程序的类似接口或方法是什么?
用我上面的方法
if(id == 'a1') {}
else if (id == 'a2') {}
else if (id == 'a3') {}
@犇niú茻máng
你好,非常感谢你的回复,非常清楚,赞!
现在的问题是,获取这个组件的id没有问题,但是使用什么接口通过这个id触发组件事件呢?之前列的方法:
document.getElementById("target").onclick();
微信小程序不支持,使用报错
<view bindtap='bindTap'>
<view id="a1" style="width:100%;height:150rpx;background-color:#fcc;"></view>
<view id="a2" style="width:100%;height:150rpx;background-color:#faf;"></view>
<view id="a3" style="width:100%;height:150rpx;background-color:#ccf;"></view>
</view>
这样做看看
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
所以不能使用bom相关的对象。而依赖bom的常用的比如说jQuery就无能为力了。wa正式部署使用webpack打的包,而在打包的过程中,把以下变量给屏蔽了:
window,document,frames,self,location,navigator,localStorage,history,Caches,screen,alert,confirm,prompt,XMLHttpRequest,WebSocket
你好,这中间理解可能有误。你所写的是在bindTap函数中怎么区分组件,我想问的是怎么使用程序触发bindTap函数。
当然,这并不是直接调用bindTap方法就行,因为对于tap事件可以这样简单处理,但是对于change事件的组件,就有问题了。因为这类方法被调用时,参数里包含change的具体信息,例如本次change的x,y位置。我直接调用这个函数,没法给这些参数。
我其实想要的就是利用程序,让目标组件真正运行,类似模拟了一次点击触发。document.getElementById("picker-time").onclick();,的确是我想要的方法,真正触动组件工作。但是上面这个方法小程序不支持。
Android app里有类似接口performClick(),也是这个意思。
不知道小程序的类似接口或方法是什么?
用我上面的方法
if(id == 'a1') {}
else if (id == 'a2') {}
else if (id == 'a3') {}
@犇niú茻máng
你好,非常感谢你的回复,非常清楚,赞!
现在的问题是,获取这个组件的id没有问题,但是使用什么接口通过这个id触发组件事件呢?之前列的方法:
document.getElementById("target").onclick();
微信小程序不支持,使用报错
<view bindtap='bindTap'>
<view id="a1" style="width:100%;height:150rpx;background-color:#fcc;"></view>
<view id="a2" style="width:100%;height:150rpx;background-color:#faf;"></view>
<view id="a3" style="width:100%;height:150rpx;background-color:#ccf;"></view>
</view>
这样做看看