click
이벤트가 실행되는 이유는 알 수 있지만 timeupdate
이벤트는 발생하지 않습니다.왜 오디오 이벤트가 BackboneJS로 실행되지 않고 다른 이벤트가 발생합니까?
, 이벤트가 <audio>
에서 발사하지, 내가 템플릿의 컨트롤을 표시하는 경우 그래도 난 플레이어를 클릭하면 ... click .audio
이벤트가 발생합니다 canplay, 재생, 일시 정지, timeupdate로했습니다.
var PlayerView = Backbone.View.extend({
tagName : 'div',
template: _.template($('#player-template').html()),
initialize: function() {
this.$el.html(this.template(this.model.toJSON()));
}
events: {
'timeupdate .audio': 'onTimeUpdate',
'click .btn_play': 'onClickPlay',
'click .btn_pause': 'onClickPause'
},
onTimeUpdate: function() {
console.log('player ' + this.model.get('id') + ' : event = onTimeUpdate');
},
onClickPlay: function() {
console.log('player ' + this.model.get('id') + ' : event = onClickPlay');
},
onClickPause: function() {
console.log('player ' + this.model.get('id') + ' : event = onClickPause');
},
});
$(function(){
var model = new PlayerModel({'id' : 1});
var view = new PlayerView({'model' : model});
$("#players").append(view.el);
})
템플릿 :
<script type="text/template" id="player-template">
<div id="player<%= id %>" class="player">
<audio class="audio">
<source src="<%= track_url %>" type="audio/mp3" />
</audio>
<div class="control">
<button class="btn_play">Play</button>
<button class="btn_pause">Pause</button>
</div>
</div>
</script>
감사하여 초기화 기능을 대체 할 수있는 예를 들어, 작업을 수행합니다. – Matthieu
정말로, 해명을위한 @nikoshr 감사합니다. 내 '엘'div의 외부에있는 입력 상자에 키 누르기 이벤트를 바인딩 할 때도 문제가 발생했습니다 (내부에 넣으면 효과가있었습니다). 대부분의 예제는'$ ('# your-div') .keyypress (this.your_event)'를 사용하여 제안했지만'events : {} '접근 방식이 작동하지 않는 이유를 알고 싶었습니다. 이제 알았어. –