2013-02-08 2 views
0

나는 엽차 터치를 사용하여 목록을 작성 2.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

무엇입니까 사용자가 List의 첫 번째 행이나 첫 번째 항목을 클릭하면 onMessageClickedInAround 메서드를 호출합니다 (이 메서드는 해당 사용자의 메시지를 표시하기위한 것입니다). 위 코드를 볼 수 있습니다.

사용자가 목록의 그림을 클릭하면 해당 프로필 페이지 (즉, 한 명의 사용자가 목록의 이미지를 클릭하여 다른 사용자의 프로필을 볼 수 있음)가 필요하다는 요구 사항이 있습니다. is is 내가 할 수있는 방법이 있니? 목록 데이터 소스, 엽차 터치로 채우는 경우

답변

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 - 구성 요소 - 요소). 그렇지? – Viswa

+0

@Viswa 글쎄, 네 말이 맞아. 나는 그것을 놓쳤다. 더 적은 당신이 대의원을 사용해야합니다. 나는 그 소리를 일종의 멋진 소리로 언급하지 않았다.) – sra

관련 문제