Я подвергался воздействию мероприятия Onmouseover и Onmouseout за последние два дня. Я всегда думал, что они просто запускают события, когда указатель мыши перешел к элементу и запускает события, когда указатель мыши вышел из указанного объекта. Но я внезапно обнаружил, что это просто простые описания их. В конце концов, давайте посмотрим на них вместе, в конце концов, у них все еще есть странные черты. Это хорошо или плохо?
Сначала реализуйте коробку:
Свяжите событие Onmouseover и событие Onmouseout в этой коробке
Узнайте, что с ними ничего не случится, а затем (хе -хе, вы знаете!)
Давайте создадим элемент B, так что он вложен в элемент A как дочерний элемент
Мы по -прежнему связываем событие Onmouseover и событие Onmouseout с внешним родительским элементом A. Что вы узнаете? Да, это верно! Когда мышь въезжает и удаляет дочерний элемент B, событие Onmouseover и событие Onmouseout также происходит! ! Почему? Это не то, что я хочу! Разве б не является частью в это время? Конечно, в противном случае событие Onmouseover не произойдет, когда элемент B перенесен. Это доказывает, что элемент B по -прежнему является неотъемлемой частью A.
Тогда что происходит? В конце концов, инцидент совершает ошибку? Все знают, что в обычных браузерах есть два вида потоков событий: пузырьки событий и захват событий. Давайте посмотрим на определение пузырьков событий: события распространяются шаг за шагом от наиболее конкретной цели события до наименее конкретной цели события (объект документа). Поэтому, когда мышь въезжает и удаляет дочерний элемент A, событие B's Onmouseover и событие Onmouseout будет запускается, но у нее нет этих двух событий, поэтому она передает эти два события своему родительскому элементу A. A имеет эти два события, поэтому ситуация, которую мы видим.
Некоторые люди скажут, как это избежать. В конце концов, не у всех есть такой спрос. Нам просто нужно событие родительского элемента, чтобы запустить, и позволить ребенку тихо быть красивым человеком.
Таким образом, W3C добавляет атрибуты связанных картевых атрибутов в событиях MouseOver и Mouseout:
• В событии MouseOver это указывает, какой элемент мыши поступают
• В событии Mouseout он указывает на элемент, на который идет мышь
Тем не менее, Microsoft добавила два атрибута в события MouseOver и Mouseout
• Из -за элемента, в событии Mouseover, указывает, какой элемент мыши поступают
• Появление, элемент, который указывает на мышь в событии Mouseout
Итак, у нас есть следующая реализация кода
document.getElementbyId ('box1'). onmouseover = function (e) {if (! e) e = window.event; var reltg = e.relatedTarget? e.relatedTarget: e.Fromelement; while (reltg && reltg! = this) reltg = reltg.parentnode; if (reltg! = this) {// здесь вы можете написать код обработки для AnmouseEnter Event Alert ('111');}} document.getElement ('Box1'). window.event; var reltg = e.relatedTarget? e.relatedTarget: e.toElement; while (reltg && reltg! = this) reltg = reltg.parentnode; if (reltg! = this) {// здесь вы можете написать AnmouseLeave Event Code Alert ('2222');}}}Вышесказанное - это всестороннее понимание инцидента в Onmouseover и инцидента Onmouseout, введенного вам редактором. Я надеюсь, что это будет полезно для вас. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит вам вовремя. Большое спасибо за вашу поддержку сайту wulin.com!