jQuery如何在页面加载光标悬停元素时阻止鼠标中心触发

时间:2011-09-26 09:59:18

标签: jquery mouseenter

我的页面上有一个元素,其中绑定了一个mouseenter事件,它会改变子图像的尺寸。

它可以按照我想要的方式工作,但是如果你将光标悬停在div所在的页面上,它会在加载时立即触发 - 这是不受欢迎的,我希望它直到鼠标光标才能执行任何操作< em>输入 div,而不仅仅是在那里开始。

我试过在jsfiddle上敲一个例子,但页面加载得太快,我无法将光标放在正确的位置:(

一种可能性是将绑定方法调用置于超时状态,以便绑定事件需要一秒钟,但如果用户将光标留在我的div上,问题仍然会发生。

有什么想法吗?

使用jQuery 1.6.2

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

        }

    });