我在这里有一个Prototype片段,我真的很想看到转换成Mootools。
document.observe('click', function(e, el) {
if ( ! e.target.descendantOf('calendar')) {
Effect.toggle('calendar', 'appear', {duration: 0.4});
}
});
该代码段会捕获点击次数,如果它在容器外部点击,则$('calendar')应切换。
答案 0 :(得分:1)
您是否尝试捕获文档中的任何位置?也许你可以试试......
var calendar = $('calendar');
$$('body')[0].addEvent('click', function(e) {
if (!$(e.target).getParent('#calendar')) {
var myFx = new Fx.Tween(calendar, {duration: 400});
myFx.set('display', 'block');
}
}
我不确定您是如何切换可见性的,但Fx.Tween.set的工作方式允许您更改任何CSS属性。您可能希望查看http://mootools.net/docs/core/Fx/Fx.Tween以了解其他可能性。
另外,请注意我使用$包装e.target。这是专门针对IE的。我在“Mootools Events Targets”子标题下写了一篇关于这个here的帖子。
最后,我考虑了$('calendar'),这样你就不会每次都搜索DOM。