JavaScript: событие onMouseOver не работает должным образом с другими событиями - PullRequest
2 голосов
/ 19 февраля 2011

У меня есть веб-страница HTML, которая содержит таблицу 15x15, и у меня также есть небольшой квадратный div, который следует за мышью, когда вы нажимаете и удерживаете левую кнопку мыши на div.

Я назначил событие onmouseoverв таблицу 15x15, чтобы при наведении курсора мыши на ячейку переменной «gridPlacement» устанавливалось значение уникального идентификатора ячейки таблицы, над которой мышь наведена.

Кажется, что событие onmouseover работает нормальнои сразу же, как только вы наводите курсор на ячейку, переменная gridPlacement устанавливается на идентификатор ячейки.

Но когда запускаются события onmousedown и onmousemove (когда мышь нажимает и удерживает левую кнопку мыши наdiv, о котором я упоминал ранее), иногда, когда вы наводите курсор мыши на ячейку, переменная gridPlacement не устанавливается, и иногда вам приходится несколько раз навести указатель мыши на ячейку, чтобы она заработала.

Кажется,События onmousedown и onmousemove, похоже, влияют на событие onhover в моей таблице 15x15.

Кто-нибудь знает, почему это происходит и как я могу обойти эту проблему?

Надеюсь, вы понимаете меня, я пытался объяснить мою проблему как можно лучше.

ПРОБЛЕМА РЕШЕНА!

Изменение смещения элемента, который перетаскивает пользователь, сделало свое дело, спасибо всем за помощь!:)

Ответы [ 2 ]

2 голосов
/ 19 февраля 2011

Я думаю, что Зозо правильно. Я столкнулся с аналогичной проблемой, и я использовал обходной путь, чтобы изменить смещение элемента, следующего за мышью, чтобы он не отображался непосредственно под мышью (возможно, на несколько пикселей в сторону / над / под или около того).

Надеюсь, это поможет.

2 голосов
/ 19 февраля 2011

Проблема, о которой вы спрашивали, возникает из-за того, что когда вы нажимаете кнопку, div находится под вашей мышью, поэтому вы фактически не наводите курсор на ячейку (по крайней мере, это то, что я понял из вашего описания). Обходным путем может быть установка желаемой переменной при выходе из определенной ячейки (onmouseout), но это не поможет вам, так как, я думаю, вы хотите узнать, над какой ячейкой ведьмы вы находитесь, поэтому я думаю, вы можете получить положение мыши и сравнить ее в положение клеток ... если вы не получите лучший ответ, потому что это вроде ... не так просто.

...