视图中 ui 定义的范围
scope of ui definitions in View
哪个是正确的?
以下代码在
内单击 .my-button
时运行 clickedButton
a) 整个文档
b) 只有 #my-element
如果答案是 a)。 b) 怎么做?
var MyView = Marionette.ItemView.extend({
el: '#my-element',
ui: {
button: '.my-button'
},
events: {
'click @ui.button': 'clickedButton'
},
答案正好是B。
在BackboneJS的delegateEvents中,给元素绑定事件的时候有DOM的作用域,代码如下:
this.$el.on(eventName, selector, method);
你可以运行这样:
HTML 是
<button class="my-button">Click Me - 1</button>
<div id="my-element">
<p>Hello World</p>
<button class="my-button">Click Me - 2</button>
</div>
脚本是
var MyView = Marionette.ItemView.extend({
el: '#my-element',
template: false,
ui: {
paragraph: 'p',
button: '.my-button'
},
events: {
'click @ui.button': 'clickedButton'
},
clickedButton: function(evt) {
console.log('I clicked the button ['+$(evt.target).html()+']!');
}
});
哪个是正确的?
以下代码在
内单击 .my-button
时运行 clickedButton
a) 整个文档
b) 只有 #my-element
如果答案是 a)。 b) 怎么做?
var MyView = Marionette.ItemView.extend({
el: '#my-element',
ui: {
button: '.my-button'
},
events: {
'click @ui.button': 'clickedButton'
},
答案正好是B。 在BackboneJS的delegateEvents中,给元素绑定事件的时候有DOM的作用域,代码如下:
this.$el.on(eventName, selector, method);
你可以运行这样: HTML 是
<button class="my-button">Click Me - 1</button>
<div id="my-element">
<p>Hello World</p>
<button class="my-button">Click Me - 2</button>
</div>
脚本是
var MyView = Marionette.ItemView.extend({
el: '#my-element',
template: false,
ui: {
paragraph: 'p',
button: '.my-button'
},
events: {
'click @ui.button': 'clickedButton'
},
clickedButton: function(evt) {
console.log('I clicked the button ['+$(evt.target).html()+']!');
}
});