如何选择:按 ID、按类、通过父项、查找(OR children OR query OR select?WTF)、兄弟姐妹、ComponentQuery、DOM-query、CSS-query 等。
Ext.ComponentQuery.query("*") // get all
Ext.ComponentQuery.query("button") // all buttons
Ext.ComponentQuery.query("#myid") // all controls / components myid
Ext.ComponentQuery.query("#myid", rootelement) // all controls / components myid with rootelement
Ext.ComponentQuery.query("#myid,button") // all buttons or controls / components myid
如何在树中操作:创建、追加、前置、在该兄弟之后插入、移动到该父级、删除、销毁等。
将按钮添加到视图:
Ext.ComponentQuery.query("#viewId")[0].add(new Ext.Button({ text: 'test'}));
还有insert
,remove
等等,具体取决于您要查询的控件。
如何在屏幕上进行操作:显示、隐藏、淡入淡出、滑动、上移、下移、更改大小等。
Ext.ComponentQuery.query("button").forEach(function(button){ button.hide(); }) // hide all buttons
根据您要查询的控件,还有、等show
。disable
enable
如何识别相互关联:知道它的Ext.Component找到DOM.Element,知道它的DOM.Element找到Ext.Component,等等。
发现Ext.Component
知道它Dom.Element
非常容易,您只需从 DOM 元素中获取 ID 并使用Ext.ComponentQuery.query("#id")
. 还有Ext.select('#id')
用于从 ID 获取对象。
使用 element 属性,您可以获得 DOM:
var dom = Ext.ComponentQuery.query("button")[0].element.dom // Getting the DOM from the first button
var dom2 = component.element.dom // does also work as long as component is a valid sencha touch component
它们之间的依赖关系是什么:如果 DOM.Element 的 Ext.Component 被隐藏/销毁/更改/移动,会发生什么,如果 Ext.Element 被隐藏/销毁/更改/移动,Ext.Component 会发生什么等.
我认为,我不确定,.hide
例如,如果您调用,将会有一些 CSS 应用于 DOM,例如:display: none
. 在内部,他们可以使用一些类似的框架jQuery
或旧的学校版本document.getElementById('id').css
等等。如果您调用.show
,它可能会更改为display: block
之前的任何类型(这可以保存在 Sencha Touch 类中)。
我不知道如果 DOM 元素被破坏会发生什么。可能也是元素,然后垃圾收集器有一些工作要做。
如果还有其他问题/不清楚或不够,请随时提问。