微信小程序,兼容问题?

[复制链接]
查看11 | 回复1 | 2021-1-27 07:13:16 | 显示全部楼层 |阅读模式
用微信小程序写了个类似消消乐的小程序。现在写完了,在调试,出现了个问题。
在开发平台上通过点击事件更改wxnl中的class的名字,
wxml:
{{item.word1}}

data:data:{
index:[{
ind:'0'
},{
di:'0'
}],
wordMsg:[{
word1:"Gas\r\nStation",
classname:'text-bg',
pipei:'1',
textfonname:'text-fon',
flag:true
},
{
word1:"加油站",
classname:'text-bg',
pipei:'-1',
textfonname:'text-fon',
flag:true
},
事件代码:gameda:function(e){
console.log('点击事件触发')
//点击修改按钮状态
varthat=this;
varg1=parseInt(e.currentTarget.dataset.index)
varwordMsg=that.data.wordMsg
//改变选中状态
if(wordMsg[g1].classname=='text-bg'){
wordMsg[g1].classname='text-bg1';
}else{
wordMsg[g1].classname='text-bg';
}
that.setData({
wordMsg:wordMsg
})
//判断逻辑开始
varindex=that.data.index
vari=index[1].di
++i
index[1].di=i
//console.log(i)
wx.setStorage({
key:'dianji',
data:index[1].di,
})
//console.log(wx.getStorageSync('dianji'))
vardjcs=wx.getStorageSync('dianji')
//点击次数验证打印
//console.log(djcs)
//记录点击的按钮
varindex_1
varindex_2
if((djcs%2)==1){
wx.setStorage({
key:'index_1',
data:parseInt(e.currentTarget.dataset.index),
})
wx.setStorage({
key:'pipeima_1',
data:wordMsg[g1].pipei,
})
//console.log('单次进入')
}else{
wx.setStorage({
key:'index_2',
data:parseInt(e.currentTarget.dataset.index),
})
wx.setStorage({
key:'pipeima_2',
data:wordMsg[g1].pipei,
})
//console.log('双次进入')
}
if((djcs%2)!=0){
//console.log('判断二单次进入')
//console.log('判断二单次进入不做变化')
}else{
varvalue_3=wx.getStorageSync('pipeima_1')//获得第一次按钮的匹配码
console.log('第一次按钮匹配码:'+value_3)
varvalue_4=wx.getStorageSync('pipeima_2')//获得第二次按钮的匹配码
console.log('第二次按钮匹配码:'+value_4)
//console.log('判断二双次进入')
value_3=parseInt(value_3)
value_4=parseInt(value_4)
varvalue_5=value_3+value_4
console.log('两次匹配码和:'+value_5)
if(value_5==0){
console.log('判断成功进入')
varvalue_1=wx.getStorageSync('index_1')//获得第一次按钮的index
//console.log('第一次按钮index:'+value_1)
varvalue_2=wx.getStorageSync('index_2')//获得第二次按钮的index
//console.log('第二次按钮index:'+value_2)
//进行样式改变
wordMsg[value_1].classname='text-bg2';
wordMsg[value_2].classname='text-bg2';
wordMsg[value_1].flag=false;
wordMsg[value_2].flag=false;
console.log(wordMsg[value_1].flag,wordMsg[value_2].flag)
//数据改变并刷新
that.setData({
wordMsg:wordMsg
})
that.onLoad()//重点重新执行下onLoad去获取当前的数据
//延时0.5秒执行
setTimeout(function(){
//要延时执行的代码
wordMsg[value_1].classname='text-bg';
wordMsg[value_2].classname='text-bg';
wordMsg[value_1].textfonname='text-fon1';
wordMsg[value_2].textfonname='text-fon1';
//存数据
that.setData({
wordMsg:wordMsg
})
//刷新
that.onLoad()//重新执行下onLoad去获取当前的数据
//缓存清除
wx.clearStorage()
},500)//延迟时间这里是0.5秒
//记录成功几次
varindex=that.data.index
varii=index[0].ind
++ii
index[0].ind=ii
if(ii==8){
wx.reLaunch({
url:'../win/win',
})
console.log('通关')//--------------------------------------------------------------添加跳转通关页面
}
}else{
console.log('判断失败进入')
varvalue_1=wx.getStorageSync('index_1')//获得第一次按钮的index
varvalue_2=wx.getStorageSync('index_2')//获得第二次按钮的index
wordMsg[value_1].classname='text-bg3';
wordMsg[value_2].classname='text-bg3';
//数据改变并刷新
that.setData({
wordMsg:wordMsg
})
that.onLoad()//重点重新执行下onLoad去获取当前的数据
//延时0.5秒执行
setTimeout(function(){
//要延时执行的代码
wordMsg[value_1].classname='text-bg';
wordMsg[value_2].classname='text-bg';
//存数据
that.setData({
wordMsg:wordMsg
})
//刷新
that.onLoad()//重新执行下onLoad去获取当前的数据
//缓存清除
wx.clearStorage()
},500)//延迟时间这里是0.5秒
}
}
},

然后我把代码上传了,体验版用ios的手机能用,用安卓手机用,游戏界面点击了就报错,但是在开发平台上的真机调试中,ios与安卓都可以用。

报错是:thirdScriptError
Cannotsetproperty'classname'ofundefined;[Component]EventHandlerError@pages/games/game#boundgameda
TypeError:Cannotsetproperty'classname'ofundefined
atye.gameda(http://127.0.0.1:48173/appservice/pages/games/game.js:270:36)
atObject.r.safeCallback(WAService.js:1:857898)
atWAService.js:1:1048426
atr(WAService.js:1:982076)
atWAService.js:1:982184
atWAService.js:1:253666
atn(http://127.0.0.1:48173/appservice/appservice?t=1562141842045:1195:27752)
ate.exports.(http://127.0.0.1:48173/appservice/appservice?t=1562141842045:1195:28094)
athttp://127.0.0.1:48173/appservice/appservice?t=1562141842045:1195:13287
atArray.forEach()
然后就是,该程序逻辑是点击两个相匹配的中文和英文会先变绿再消失,有个0.5秒左右的过程。再这个过程之间如果点击了其他的中文或者单词就会报错,和刚才那个错是一样的,不在这0.5秒之间点,就不会报错。
请问我是那点错了怎么改

分 -->
回复

使用道具 举报

千问 | 2021-1-27 07:13:16 | 显示全部楼层
删除延时函数之后第二个问题的报错没有了现在就剩下第一个问题了,真机调试和体验版,ios都能行,但安卓的真机调试没问题,体验版就有问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行