如何将此代码段转换为Mootools

时间:2010-03-03 16:00:57

标签: mootools prototypejs

我在这里有一个Prototype片段,我真的很想看到转换成Mootools。

document.observe('click', function(e, el) {
    if ( ! e.target.descendantOf('calendar')) {
        Effect.toggle('calendar', 'appear', {duration: 0.4});
    }
});

该代码段会捕获点击次数,如果它在容器外部点击,则$('calendar')应切换。

1 个答案:

答案 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。