我正在使用sencha touch 2.2.0 alpha开发一个webapp。我正在使用导航视图,我推送其他视图。当设备脱机时,这些视图的某些元素必须具有不同的外观。为了做到这一点,我检查navigator.onLine和 - 如果为false - 我将类“离线”添加到元素。 这是第一次在元素上执行时按预期工作。但是当我按下后退按钮弹出视图然后再次按下堆栈上的视图时,该类不会添加到html中。 如代码所示,我查找dom中的所有li元素,如果他们的id以“link”开头,则添加该类。 当我记录元素时,我可以看到没有添加类,但是当我记录对象(代码中的“obj”)时,“dom”-property告诉我它是。我有什么想法或错误的想法吗?
if ( !navigator.onLine )
{
lis = Ext.DomQuery.select('li');
for ( i = 0; i < lis.length; i ++ )
{
if ( lis[i].id.substring(0, 4) == 'link' )
{
obj = Ext.get(lis[i].id);
obj.addCls('offline');
}
}
}
答案 0 :(得分:1)
正如我在上面的评论中所提到的,你应该只为<body>
添加一个className,并在CSS选择器中使用它。
至于你的代码:它不起作用,因为Sencha Touch中的DOM结构是自动生成的,所以当你使用Ext.DomQuery手动添加一个类时,它可能不会留在元素上,因为它可能会再次被删除/创建。要在Sencha Touch中的视图/组件上添加类,您应该使用视图的cls
配置:
{
xtype: 'container',
html: 'My view!',
cls: 'myCustomClass'
}