我试图在jQuery下面延迟mousehouver事件
document.observe('mouseover', (function (event) {
var target = event.findElement('a[rel^=lightbox]') || event.findElement('area[rel^=lightbox]');
if (target) {
event.stop();
this.start(target);
}
}).bind(this));
},
我试过这个
document.observe('mouseover', (function (event), 2000) {
var target = event.findElement('a[rel^=lightbox]') || event.findElement('area[rel^=lightbox]');
if (target) {
event.stop();
this.start(target);
}
}).bind(this));
},
但它没有用。
请问我该怎么做才能做到这一点?
由于
我也试过了,但是悬停不起作用。
var hoverTimeout;
document.observe('mouseenter', (function(event){
hoverTimeout = setTimeout(function(){
document.observe('mouseover', (function(event){
var target = event.findElement('a[rel^=lightbox]') || event.findElement('area[rel^=lightbox]');
if (target) {
event.stop();
this.start(target);
}
}).bind(this));
},
}, 2000);
});
答案 0 :(得分:3)
你想要这样做(可能稍作修改,因为我没有测试这段代码)来覆盖Lightbox事件处理程序中的行为,这应该在你加载Lightbox脚本后立即放置:
<script src="js/lightbox.js" type="text/javascript"></script>
<script type="text/javascript">
Lightbox.prototype.updateImageList = function() {
this.updateImageList = Prototype.emptyFunction;
var hoverTimeout, delayMilliseconds = 2000;
document.observe('mouseover', (function(event){
var target = event.findElement('a[rel^=lightbox]')
|| event.findElement('area[rel^=lightbox]');
if (target) {
hoverTimeout = setTimeout(function(){
event.stop();
this.start(target);
}, delayMilliseconds);
target.one('mouseleave', function(){
clearTimeout(hoverTimeout);
});
}
}).bind(this));
};
</script>
答案 1 :(得分:1)
查看hoverIntent插件,我认为这正是你要找的:)。 http://cherne.net/brian/resources/jquery.hoverIntent.html