[javascript] backbone.js-이벤트, 클릭 된 항목 파악

내 backbone.js 뷰 클래스 중 하나에 다음과 같은 것이 있습니다.

...

events: {
  'click ul#perpage span' : 'perpage'
},

perpage: function() {
  // Access the text of the span that was clicked here
  // Something like: alert($(element).text())
},

...

내 페이지 당 마크 업은 다음과 같을 수 있기 때문입니다.

<ul id="perpage">
  <li><span>5</span></li>
  <li><span>10</span></li>
</ul>

그렇다면 이벤트를 발생시킨 요소에 대한 정보를 정확히 어떻게 찾을 수 있습니까? 아니면이 경우 클릭 되었습니까?



답변

일반적으로 이벤트 바인드에서는을 사용 $(this)하지만 Backbone 뷰가 this항상 뷰를 참조 하도록 설정되어 있다고 확신 하므로 다음을 시도하십시오.

perpage: function(ev) {
   alert($(ev.target).text());
}

정말 늦은 편집 : 아마 $(ev.currentTarget). 아래 pawlik의 답변에 대한 토론을 참조하십시오.


답변

ev.target오해의 소지가 있으므로 http://www.quirksmode.org/js/events_order.html에ev.currentTarget 설명 된대로 사용해야합니다 .


답변

원하는 속성을 얻을 수 있습니다. ev 다음과 같이 작동합니다 this.

perpage: function(ev) {
        console.log($(ev.target).attr('name'));
}


답변