( Veja a última edição nesta resposta se precisar usar .on()com elementos preenchidos com JavaScript )
Use isso para elementos que não são preenchidos usando JavaScript:
$(".selector").on("mouseover", function () {
//stuff to do on mouseover
});
.hover()tem seu próprio manipulador: http://api.jquery.com/hover/
Se você deseja fazer várias coisas, encadeie-as no .on()manipulador da seguinte maneira:
$(".selector").on({
mouseenter: function () {
//stuff to do on mouse enter
},
mouseleave: function () {
//stuff to do on mouse leave
}
});
De acordo com as respostas fornecidas a seguir você pode usar hovercom .on(), mas:
Embora fortemente desanimado com o novo código, você pode ver o nome do pseudo-evento "hover" usado como uma abreviação para a sequência "mouseenter mouseleave". Ele anexa um único manipulador de eventos para esses dois eventos, e o manipulador deve examinar event.type para determinar se o evento é mouseenter ou mouseleave. Não confunda o nome do pseudo-evento "hover" com o método .hover (), que aceita uma ou duas funções.
Além disso, não há vantagens de desempenho em usá-lo e é mais volumoso do que apenas usar mouseenterou mouseleave. A resposta que forneci requer menos código e é a maneira correta de obter algo assim.
EDITAR
Já faz um tempo desde que essa pergunta foi respondida e parece ter ganhado alguma força. O código acima ainda permanece, mas eu queria adicionar algo à minha resposta original.
Embora prefira usar mouseentere mouseleave(me ajude a entender o que está acontecendo no código) .on(), é o mesmo que escrever o seguinte comhover()
$(".selector").hover(function () {
//stuff to do on mouse enter
},
function () {
//stuff to do on mouse leave
});
Desde a pergunta original fez perguntar como eles poderiam usar corretamente on()com hover(), eu pensei que iria corrigir o uso de on()e não achar que é necessário adicionar o hover()código no momento.
EDIÇÃO 11 DE DEZEMBRO DE 2012
Algumas novas respostas fornecidas abaixo detalham como .on()deve funcionar se o divem questão for preenchido usando JavaScript. Por exemplo, digamos que você preencha um evento divusando jQuery .load(), assim:
(function ($) {
//append div to document body
$('<div class="selector">Test</div>').appendTo(document.body);
}(jQuery));
O código acima para .on()não seria válido. Em vez disso, você deve modificar seu código levemente, assim:
$(document).on({
mouseenter: function () {
//stuff to do on mouse enter
},
mouseleave: function () {
//stuff to do on mouse leave
}
}, ".selector"); //pass the element as an argument to .on
Este código funcionará para um elemento preenchido com JavaScript após a .load()ocorrência de um evento. Apenas mude seu argumento para o seletor apropriado.
mouseenteremouseleave, como sugerido por calebthebrewer.