1
我正在使用sencha touch應用程序。我具有從板延伸的圖Sencha touch html div tap listener
視圖
Ext.define('MyApp.view.home', {
extend : 'Ext.Panel',
xtype : 'homeGrid',
config : {
scrollable: 'vertical',
width: '100%',
height: '100%',
html : '<div></div>'
}
});
從控制器,我將項目添加到該面板動態,從服務器讀取一些數據後:
在控制器中
var homeGrid = this.getHomeGrid();
var htmlString = '<ul class="myGrid">';
htmlString = htmlString + '\
<li>\
<div class="gridItem" id="item1">\
<div class="gridIcon">\
<img class="gridIconImage" src="myIcon.png"/>\
</div>\
<div class="gridItemName">\
Item 2\
</div>\
</li>\
<li>\
<div class="gridItem" id="item2">\
<div class="gridIcon">\
<img class="gridIconImage" src="myIcon.png"/>\
</div>\
<div class="gridItemName">\
Item 1\
</div>\
</li>\
<li>\
<div class="gridItem" id="item3">\
<div class="gridIcon">\
<img class="gridIconImage" src="myIcon.png"/>\
</div>\
<div class="gridItemName">\
Item 3\
</div>\
</li>\
'</ul>';
homeGrid.add({
xtype: 'panel',
html : htmlString
});
基本上我只是生成html來回m連接字符串,並使用生成的HTML將新面板項添加到原始項。
直到現在一切正常。
現在我需要添加一個tap(click)listener到gridItem div,當用戶點擊其中一個gridItems時,我需要顯示帶有div的id的警報。
我該怎麼做?
我試圖添加引用「的GridItem」級控制:
config: {
refs: {
homeGrid: 'emergencyGrid',
gridItem: '.gridItem'
},
control: {
'.gridItem': {
tap: 'onGridItem'
}
}
但是當我點擊了onGridItem永遠不會被調用。
我認爲問題是我在初始化控件後動態添加div。在面板內注入div後,是否有添加tap監聽器的方法?
非常感謝您的幫助
謝謝你,我覺得這是我正在尋找。只是一個問題,因爲我無法嘗試,直到我回到家。您指定收聽元素#homeGrid上的輕擊。這是稱爲homeGrid的面板的默認ID嗎?或者我應該給它這個ID?謝謝 – Youssef
這是您將HTML放在其中的面板的ID,它可以是您的內容的任何父母的ID。 – ThinkFloyd