我在 Backbone 中有一个包含内部 div 的视图。我想当用户单击 div 外部时隐藏 div。
我不知道如何在视图内设置一个事件,显示“click NOT #inner_div”:“removeDiv”。
关于如何执行此操作有什么建议吗?
通常的方法是将点击处理程序直接附加到<body>
然后关闭或隐藏你的<div>
。例如:
render: function() {
$('body').on('click', this.remove);
this.$el.html('<div id="d"></div>');
return this;
},
remove: function() {
$('body').off('click', this.remove);
// This is what the default `remove` does.
this.$el.remove();
return this;
}
如果你只是想隐藏<div>
而不是删除它,只需绑定点击<body>
与不同的方法remove http://backbonejs.org/#View-remove;您仍然需要从中删除点击处理程序<body>
在你的remove
尽管。另外,您还需要捕获视图上的点击事件el
阻止他们到达<body>
.
Demo: http://jsfiddle.net/ambigously/R698h/ http://jsfiddle.net/ambiguous/R698h/
如果您有其他关心点击事件的元素,那么您绝对可以定位一个<div>
来掩盖<body>
然后将您的点击处理程序绑定到它。你可以看看jQuery 块 UI http://www.malsup.com/jquery/block/插件来看看这是如何完成的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)