在開發的過程中,經常會碰到需要呼叫已建立的元件的情況。一般情況下,可以用ext.getcmp()方法達到這一目的。這個方法是ext.componentmanager的get方法的快捷方式,呼叫ext.getcmp()方法實際就是間接呼叫了ext.componentmanager.get()方法。
ad:
get方法:
get( string id : object通過id獲取乙個元件例項。
引數
l id : string元件的id
返回值
l object元件例項,或者unfined。
但是上述方法,只能實現獲取乙個元件的目的,如果你想要獲取乙個型別的所有元件集合、具有某些特點的元件集合,ext.componentmanager.get()就無能為力了。sencha touch中怎麼做到這一點?這就是本篇存在的目的了。來,用元件選擇器吧,它的query方法能讓你輕鬆地實現這一目標。下面讓我們來認識一下它:
query( string selector, ext.container root : ext.component獲取乙個元件集合。
引數
l selector : string乙個字串形式的選擇器。
l root : ext.container(可選)乙個容器元件或乙個容器元件集,搜尋範圍將被限定在這些容器裡面。
返回值
l ext.component符合條件的元件集,或者乙個空集合。
如果你學過css的選擇器,那麼肯定會對以下內容十分熟悉。
id選擇器
根據元件id來選擇元件,具有唯一性。前面以」#」號來標誌:
//返回itemid或者id為「panel」的元件例項類別選擇器var panel = ext.componentquery.query('#panel');
類選擇器根據類的xtype來選擇,可選擇前面是否以」.」來標誌,如:
//根據xtype返回所有ext.list例項屬性選擇器var lists = ext.componentquery.query('list');
var lists2 = ext.componentquery.query('.list');
根據元件的屬性來選擇,可以選擇具有某個屬性的元件,或者屬性為特定值的元件。
//返回具有iconcls屬性的ext.button的例項也可以選擇某個屬性為特定值的元件var btnok= ext.componentquery.query('button[iconcls]');
//返回text屬性為「ok」的ext.button的例項後代選擇器var btnok= ext.componentquery.query('button[text = "ok"]');
後代選擇器也稱為包含選擇器,用來選擇特定容器或容器組的後代,後代選擇器由兩個常用選擇器,中間加乙個空格表示。其中前面的選擇器選擇父元件,後面的選擇器選擇後代元件。
//返回所有id為「myct」的容器中ext.panel例項子選擇器var panelswithinmyct = ext.componentquery.query('#myct panel');
請注意這個選擇器與後代選擇器的區別,子選擇器(child selector)僅是指它的直接後代,而後代選擇器是作用於所有子後代元件。後代選擇器通過空格來進行選擇,而子選擇器是通過「>」進行選擇,我們看下面的**:
//返回所有id為「myct」的容器的子元件中的ext.panel例項var directchildpanel = ext.componentquery.query('#myct > panel'
Sencha Touch之元件選擇器
在開發的過程中,經常會碰到需要呼叫已建立的元件的情況。一般情況下,可以用ext.getcmp 方法達到這一目的。這個方法是ext.componentmanager的get方法的快捷方式,呼叫ext.getcmp 方法實際就是間接呼叫了ext.componentmanager.get 方法。get方法...
Sencha touch 開發系列 元件布局
你如果對st的元件有了一些認識後,然後你又想做一些東東來體驗下st。拿到設計圖後,那麼你就需要好好的規劃你的應用,需要哪些元件,各元件都應該擺放在 這個時候你就需要了解一下st裡面的布局 layout 同樣,開啟我們的api文當 找到layout,並展開,我們可以看到st為我們提供了 vbox,hb...
Sencha Touch 入門指導
b sencha touch 入門指導 b 1.介紹sencha touch 是乙個js框架.用於建立在基於觸控裝置的web應用.它使用html,css來提供和本地應用一樣效果的體驗,而不需要外掛程式.2.使用sencha touch url 建立html index.html 引入css ext ...