mootool事件在特定时间延迟

时间:2010-09-02 20:02:54

标签: mootools mootools1.2

任何人遇到的代码只会在鼠标进入元素一段时间后触发事件?但如果只是快速悬停或通过元素,则不会触发事件..

2 个答案:

答案 0 :(得分:1)

使用setTimeout,这不是MooTools的方式。您应该使用的是框架的方法:

var theDiv = $$('div')[0];
var foo = function(){
    theDiv.highlight();
};
var timer;

theDiv.addEvents({
    mouseenter: function() {
        timer = foo.delay(1000);
    },

    mouseleave: function() {
        $clear(timer);
    }
});​

查看有效的示例http://www.jsfiddle.net/oskar/SZsNT/

答案 1 :(得分:0)

var timer = null;
element.addEvents({
  mouseenter: function() {
    timer = setTimeout(foo, 5000);
  },

  mouseleave: function() {
    clearTimeout(timer);
  }

});

因此,仅当光标在元素上持续5秒

时才会调用foo