我有一个Backbone
视图,我附上了一些事件:
var View1 = Backbone.View.extend({
initialize: function() {
// ...
},
events: {
"touchend .elem": "callback",
// ...
}
render: function() {
// ...
}
});
现在,当我呈现View1
时,首先呈现另一个视图(View2
)并且其div
覆盖View1
个元素。
div
具有以下CSS
属性:
.overlay {
background-color: rgba(0, 0, 0, 0.22) !important;
z-index: 500;
width: 100%;
height: 100%;
top: 0;
left: 0;
position: fixed;
}
几秒后 View2
消失。
问题是,如果我在叠加层消失之前单击叠加层,则会触发叠加层下的事件,因此,在我的示例中,将调用callback
函数。
我尝试通过这样做将假事件附加到View2
:
var View2 = Backbone.View.extend({
initialize: function() {
// ...
},
events: {
// ...
"touchend .overlay": "overlayCallback"
},
overlayCallback: function( event ) {
if ( event ) {
event.preventDefault();
event.stopImmediatePropagation();
event.stopPropagation();
}
return false;
},
render: function() {
// ...
}
});
但它并没有解决我的问题。
当用户点击View1
重叠View2
时,如何阻止div
触发事件?
由于
答案 0 :(得分:0)
假设View1调用View2,你可以这样做:
dojoConfig= {
has: {
"dojo-firebug": true
},
isDebug: false,
parseOnLoad: false,
async: true
};
- 方法中所述的方法
backbonejs - 在view2的initialize-method中禁用docs
view1的事件暂时。 undelegateEvents
- 方法创建事件或创建一个
view1中的自定义方法,并从view2对view1的引用中调用它。