4

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

它可以按我的意愿工作,但是如果您将光标悬停在 div 所在的位置点击页面,它会在加载后立即触发 - 这是不希望的,我希望它什么都不做,直到鼠标光标实际进入div 而不是而不仅仅是在那里开始。

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

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

有任何想法吗?

使用 jQuery 1.6.2

4

2 回答 2

8

嗯。它唯一的想法。

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
    }
});
于 2011-09-26T11:28:44.590 回答
0

我的工作解决方案是:

    var mouseenterno = 0;

    $('.selector').on('mouseenter', function() {

       //your code here

        mouseenterno = mouseenterno + 1;

    });

    $('.selector').on('mouseleave', function() {

        if (mouseenterno >= 1){

           //your code here

        }

    });
于 2016-09-05T12:17:26.127 回答