내 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'));
}