В чем разница между событиями mouseover и mouseenter?



Я всегда использовал mouseover событие, но при чтении документации jQuery я нашел mouseenter. Они, кажется, функционируют точно так же.



есть ли разница между ними, и если да, то когда я должен их использовать?

(Также применяется для mouseout vs mouseleave).

729   6  

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

    Ничего не найдено.