jQuery, как предотвратить запуск мышиного центра при загрузке страницы с помощью элемента наведения курсора - PullRequest
4 голосов
/ 26 сентября 2011

У меня есть элемент на моей странице, к которому привязано событие mouseenter, которое изменяет размеры дочернего изображения.

Это работает так, как я хочу, однако, если вы нажмете на страницу, где курсор находится вdiv будет, он запускается сразу после загрузки - это нежелательно, я хочу, чтобы он ничего не делал до тех пор, пока курсор мыши на самом деле не введет div, а не просто будет с ним начинать.

Я пытался создать пример на jsfiddle, но страница загружается слишком быстро, и я не могу поместить курсор в нужное место: (

Одна из возможностей - поместить вызовы метода связывания в тайм-аут, чтобытребуется несколько секунд, чтобы связать событие, но проблема все равно будет возникать, если пользователь оставит свой курсор над моим div.

Есть идеи?

Использование jQuery 1.6.2

Ответы [ 2 ]

7 голосов
/ 26 сентября 2011

Hm. Это единственная идея.

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
    }
});
0 голосов
/ 05 сентября 2016

Мой рабочий раствор:

    var mouseenterno = 0;

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

       //your code here

        mouseenterno = mouseenterno + 1;

    });

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

        if (mouseenterno >= 1){

           //your code here

        }

    });
...