热门技巧

移除网格中单元格的焦点

由Ext JS 5.0.1开始,我们已经添加了对可访问性和ARIA的支持的一些显著改善。虽然我们鼓励用户使用这些新增加的功能,但我们知道并不是所有用户都喜欢默认的风格。事实上并非常所有情况下焦点都在单元格边框内;

如果你想调整焦点的样式,最好是通过修改你的SASS变量并重新编译你的样式;

  • $grid-row-cell-focus-background-color
  • $grid-row-cell-focus-border-color
  • $grid-row-cell-focus-border-inset
  • $grid-row-cell-focus-border-style
  • $grid-row-cell-focus-border-width
  • $grid-row-cell-focus-color

虽然我们建议你通过上述的修改SASS变量的方案,但其实你也可以使用CSS选择器来修改、隐藏网格中单元格的边框。

.x-grid-item-focused .x-grid-cell-inner:before {
    border: 0;
}

你可以在这个编辑器中看到例子中的CSS已经被上样式覆盖。

有关更多辅助更改的详细信息,请参阅辅助功能指南

在原型中创建实例错误


当你使用Ext.define定义一个新类后,你不应该使用Ext.create在这个原型上创建一个实例,如:

Ext.define(‘MyApp.view.Main’, {
    extend : ‘Ext.container.Container’,
    xtype  : ‘myapp-main’,
 
    requires : [
        ‘MyApp.plugins.Foo’
    ],
 
    items : [
        Ext.create(‘Ext.Component’, {
            html : ‘Hello’
        })
    ],
 
    plugins : [
        Ext.create(‘MyApp.plugins.Foo’)
    ]
});

相反,你应该使用类的别名来配置对象,如:

Ext.define(‘MyApp.view.Main’, {
    extend : ‘Ext.container.Container’,
    xtype  : ‘myapp-main’,
 
    requires : [
        ‘MyApp.plugins.Foo
    ],
 
    items : [
        {
            xtype : ‘component’,
            html  : ‘Hello’
        }
    ],
 
    plugins : [
        {
            ptype : ‘myapp-foo’
        }
    ]
});

使用配置对像的原因是,当类MyApp.view.Main在这种情况下,被实例化时,它将会基于这个配置对象上创建一个新的实例。如果是基于原型上创建一个新的实例,MyApp.view.Main的第一个实例可能没问题,但后续的实例可能不会按照预期的运行,并有可能产生错误。

在这个编辑器中,你可以看到在原型中创建实例错误。

译者: 吴小强
译文: http://extjs.org.cn/node/727/

作者: Sencha Support Team
原文: http://www.sencha.com/blog/top-support-tips-september-2014/