2013-02-08 38 views
0

我創建的列表使用煎茶觸摸2.在煎茶Ext.List組件Click事件

var aroundList = Ext.create('Ext.List', { 
    itemCls : 'my-dataview-item', 
    id : 'aroundMeList', 
    itemTpl : '<div><img style="padding:1px; border-style:solid; border-width:1px; border-color:{trustColor}" src="' + localStorage.httpServerPrefix + '{imageURI}"/><span id="name">{fullname}</span><span id="time">{time}</span><p id="msg">{text}<span id="count">&nbsp;{replyCount}&nbsp;</span></p><p id="dist">&nbsp;< '+localStorage.radius+''+localStorage.unit+' '+'&nbsp;</p></div>', 
    store : aroundStore, 
    listeners : { 
     select : { 
      fn : this.onMessageClickedInAround, 
      scope : this 
     } 
    } 
}); 

我越來越喜歡這個輸出(不完全是,但是,這樣的事情)

enter image description here

當用戶單擊列表中的第一行或第一項時,我調用onMessageClickedInAround方法(此方法用於顯示來自該用戶的消息),您可以看到上面的代碼。

現在我有,當用戶單擊列表中的任何圖片的要求,我需要證明相應的個人資料頁(即一個用戶可以看到其他人通過點擊圖像中的列表配置),是有什麼辦法可以做到這一點?

回答

2

如果您的列表是由數據源,煎茶觸摸填充將相應的記錄傳遞給你的itemTap監聽器。你可以像下面這樣做。

listeners : { 
     itemtap: function (list, index, item, record) { 
      // Show next view based on current record 
     } 
    } 

如果您只想在圖像上點擊它,您可以檢查該偵聽器中的事件。

listeners : { 
     itemtap: function (list, index, item, record, senchaEvent) { 
      if (senchaEvent.event.target.nodeName === 'img') { 
       // Show next view 
      } 
     } 
    } 

您可以給一個班級<img>並檢查。

+0

謝謝@Ehtesham ..你的回答是完美的,這是我需要的。 – Viswa

+0

senchaEvent.event.target.nodeName返回「IMG」 – Viswa

4

你應該使用事件代表團此

更新

var aroundList = Ext.create('Ext.List', { 
    // rest of your cfg 
    listeners : { 
     // other listeners 
     tap: { 
      fn: yourHandler, 
      element: 'element', 
      delegate: 'img' 
     } 
    } 
}); 

如前所述以下是過時

var aroundList = Ext.create('Ext.List', { 
    // rest of your cfg 
    listeners : { 
     // other listeners 
     el: { 
      tap: yourHandler, 
      delegate: 'img' 
     } 
    } 
}); 
+0

+1代表,這是最好的方法。 –

+0

+1感謝您的回答,我認爲您的回答是舊的,按照以下[鏈接](http://www.sencha.com/forum/showthread.php?176239-HOWTO-Adding-Event-Listeners-to -component-元件)。是嗎? – Viswa

+0

@Viswa好吧,你是對的。我錯過了。無論如何,你應該使用委託。我沒有提到,導致這個詞聽起來很酷;) – sra