东西
东西
  • 发布:2017-10-15 17:59
  • 更新:2017-10-15 19:07
  • 阅读:1193

plusRead里面获取的dom对象是空的

分类:HTML5+

图中圈起来的代码执行后显示的是空的,什么也没有,导致下一行执行的时候报错:Cannot set property 'backgroundColor' of undefined,怎么解决。如果我在plusReady函数外获取那个dom对象并且alert则显示它是一个对象

2017-10-15 17:59 负责人:无 分享
已邀请:
uniapper

uniapper - abc

可以把

if(window.plus){  
  plusReady();  
}else{  
  document.addEventListener('plusReady', plusReady, false);  
}

放在文档的末尾(至少是你要获取的这个dom元素的后面)。
plus对象有可能会在dom解析完之前就已经存在了。这样会导致执行你的plusReady时该dom还没准备好。


参见:
Android平台5+ API提前生效,支持在plusready事件前调用

  • 东西 (作者)

    我那段代码本来就是在最后面的,图片中已经是js的最后一部分了,而且我在页面引用这个js文件的代码也是放在最后的


    2017-10-15 18:33

  • 东西 (作者)

    如果是因为dom还没准备好的原因,图中圈起来的代码执行后应该是undefined才对啊


    2017-10-15 18:34

  • uniapper

    那你可以用调试工具看一下,在你点击A时。id为openPopover的这个dom元素到底在不在。


    2017-10-15 19:04

uniapper

uniapper - abc

@东西 晕 你看一下 你的代码
style !!!
拼写错误

dom是获取了。但是你 menuBtn.sytle.backgroundColor 肯定是错误的

  • 东西 (作者)

    天啦,最怕范这种错误,我没考虑到这种错误的可能,感激不尽


    2017-10-15 19:41

该问题目前已经被锁定, 无法添加新回复