0

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

4

2 回答 2

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/

于 2010-09-03T06:36:00.640 回答
0
var timer = null;
element.addEvents({
  mouseenter: function() {
    timer = setTimeout(foo, 5000);
  },

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

});

仅当光标foo在元素上方 5 秒时才会调用

于 2010-09-02T20:30:32.457 回答