2013-05-23 4 views
4

Есть ли событие ввода мыши в javascript (только JavaScript, нет jQuery для использования, пожалуйста)?JavaScript: событие mouseenter в JavaScript?

Когда я это делаю, он не дает ответа.

window.onload = initAll; 
function initAll(){ 
    if(window.addEventListener){ 
     document.getElementById('container').addEventListener('mouseenter', freeze , false); 
    } 
} 

function freeze(){ 
    console.log("mouse entered")  
} 

Может кто-нибудь Пожалуйста, объясните мне разницу между «mouseenter» и «mouseover»? Является ли «mouseover» альтернативой для «mouseenter»?

Помогите оценить!

+0

[MDN Docs, отличное место для изучения: mouseenter] (https://developer.mozilla.org/en-US/docs/DOM/DOM_event_reference/mouseenter) – epascarello

+0

http://stackoverflow.com/a/1104403/ 1053938 – jonhopkins

+0

http://stackoverflow.com/questions/6130737/mouseenter-without-jquery –

ответ

3

Не беспокойтесь с onmouseenter, так как this page указывает свое специфическое значение для IE.

... Как onmouseenter, так и onmouseover огонь, когда мышь входит в границу элемента. Однако onmouseenter не запускает снова (не пузырится), если мышь вводит дочерний элемент в этот первый элемент.

Попробуйте для onmouseover:

yourObject.onmouseover=function() 
    { 
     //SomeJavaScriptCode 
    }; 

Проверить this page для некоторой хорошей информации о событиях мыши Javascript.

+0

Итак, нет ли способа использовать «mouseenter» с другими браузерами? –

+0

Видимо не в соответствии с этим постом. Обычно я использую 'onmouseover'. Вы можете использовать 'onmouseenter', если используете jQuery, хотя, согласно первому ответу в моей первой ссылке. http://api.jquery.com/mouseenter/?rdfrom=http%3A%2F%2Fdocs.jquery.com%2Fmw%2Findex.php%3Ftitle%3DEvents%2Fmouseenter%26redirect%3Dno – gwin003

+0

На этой странице говорится: «Firefox начал поддерживать onmouseenter в версии 10 (январь 2012 г.), а Chrome начал поддерживать его в версии 30 (октябрь 2013 г.) » – ChrisV

-2

Мышь над используется, когда вы просто нависаете над чем-то. Мышь вводится (или mousedown), которая должна использоваться при щелчке мыши. Полный список событий javascript можно найти here

+3

Если вы прочтете, что он говорит по ссылке, которую вы опубликовали, вы увидите, что mouseenter не имеет ничего общего с кликами –

0

Определенно, Mouseover является альтернативой mouseenter. Он дает контроль над пользовательским интерфейсом любого элемента доступа к дому. см это для дальнейшего http://dean.edwards.name/weblog/2005/10/add-event/ объяснений mouseenter without JQuery

+0

Но mouseover продолжает стрелять снова и снова? как это предотвратить? –

+0

вы могли бы написать обработчик для этого –

+0

@RachelGallen Я не уверен, о чем вы говорите. Не могли бы вы дать мне ссылку на урок/учебник? –

0

Если вы используете JQuery, используйте mouseenter и mouseleave вместо mouseover и mouseout.

enter image description here

Если взять пример выше, внутри все границы является элементом, давайте назовем один на левой со словом «Имя» в нем #A. mouseenter будет срабатывать только при перемещении мыши по границе #A. mouseover с другой стороны будет срабатывать, когда вы входите в рамку, снова, когда вы перемещаете мышь мимо серого фона за «1» и снова, когда вы наводите мышь на слово «Имя». Если вы хотите, чтобы событие срабатывало один раз, используйте mouseenter.

 Смежные вопросы

  • Нет связанных вопросов^_^