В чем разница между событиями mouseover и mouseenter?
Я всегда использовал mouseover событие, но при чтении документации jQuery я нашел mouseenter. Они, кажется, функционируют точно так же.
есть ли разница между ними, и если да, то когда я должен их использовать?
(Также применяется для mouseout vs mouseleave).
6 ответов:
вы можете попробовать следующий пример jQuery doc
Mouseenter и mouseleave не реагировать на всплывающие события, а события mouseover и mouseout do.
здесь статьи описывает поведение.
Как это часто бывает с такими вопросами, Quirksmode имеет лучший ответ.
Я бы предположил, что, поскольку одна из целей jQuery заключается в том, чтобы сделать браузер агностиком, использование любого имени события вызовет такое же поведение.Edit: благодаря другим сообщениям, теперь я вижу, что это не так
$(document).ready(function() { $("#outer_mouseover").bind ("Mouse Over Mouse Out",function(event){ console.log(event.type," :: ",this.id);}) $("#outer_mouseenter").bind ("Mouse enter Mouse leave",function(event){ console.log(event.type," :: ",this.id);}) });
объясняет это довольно хорошо здесь
только Chrome позволяет предложить имя для использования при нажатии на ссылку с динамически генерируемым контентом. Однако вы можете генерировать контент, когда курсор мыши находится над ссылкой, и помещать его как DATAURI в стандартную статическую href. Это позволяет "сохранить ссылку как.."опция в меню правой кнопки мыши.
function download_content(a, side) { a.innerHTML = "preparing content.."; var txt = "call a function to generate content"; var datauri = "data:plain/text;charset=UTF-8," + encodeURIComponent(txt); a.setAttribute('download', "chrome_let_you_suggest_a_name.txt"); a.setAttribute('href', datauri); a.innerHTML = "content ready."; } document.getElementById('my_a_link').addEventListener('mouseover', function() { download_content(this); }); <a id="my_a_link" href="#">save document</a>
Comments