Nyx*_*nyx 4 javascript jquery backbone.js underscore.js
我的View有一个点击处理程序,但el $('#modal')点击事件处理程序所针对的视图似乎在点击时不会触发.但是当我针对任何孩子时$('modal'),点击事件会在点击时触发.
我猜测$('#modal')不被视为视图的一部分,因此events在其中定义的click事件处理程序不起作用.如果是这样,还有另一种方法吗?
ModalView = Backbone.View.extend({
el: $('#modal'),
template: _.template( $('#tpl_modal').html() ),
events: {
'click #modal': 'closeModal'
},
initialize: function() {
_.bindAll(this, 'render', 'renderSimilarPosts', 'closeModal');
this.render();
},
render: function() {
$(this.el).fadeIn('fast').append( this.template( this.model.toJSON( this.model ) ) );
},
closeModal: function() {
// some code
}
});
Run Code Online (Sandbox Code Playgroud)
代替:
'click #modal': 'closeModal'
Run Code Online (Sandbox Code Playgroud)
尝试:
"click": 'closeModal'
Run Code Online (Sandbox Code Playgroud)
Backbone事件使用jQuery的delegate函数,它将处理程序(在本例中closeModal)应用于匹配给定选择器的所有子项(在本例中click #modal).因为click #modal我们在#modal中查找名为#modal的子项,所以没有找到任何元素.
看看delegate()我的意思.
| 归档时间: |
|
| 查看次数: |
2457 次 |
| 最近记录: |