我的页面上有一个元素,其中绑定了一个mouseenter事件,它会改变子图像的尺寸。
它可以按照我想要的方式工作,但是如果你将光标悬停在div所在的页面上,它会在加载时立即触发 - 这是不受欢迎的,我希望它直到鼠标光标才能执行任何操作< em>输入 div,而不仅仅是在那里开始。
我试过在jsfiddle上敲一个例子,但页面加载得太快,我无法将光标放在正确的位置:(
一种可能性是将绑定方法调用置于超时状态,以便绑定事件需要一秒钟,但如果用户将光标留在我的div上,问题仍然会发生。
有什么想法吗?
使用jQuery 1.6.2
答案 0 :(得分:7)
嗯。它唯一的想法。
var mouse_already_there = false;
var event_set = false;
$(document).ready(function() {
$(item).hover(function(){
if(!event_set) { mouse_already_there = true; }
}, function(){
if(!event_set) { mouse_already_there = false; }
});
if(mouse_already_there) {
//do nothing
} else {
event_set = true;
//set event
}
});
答案 1 :(得分:0)
我的工作解决方案是:
var mouseenterno = 0;
$('.selector').on('mouseenter', function() {
//your code here
mouseenterno = mouseenterno + 1;
});
$('.selector').on('mouseleave', function() {
if (mouseenterno >= 1){
//your code here
}
});