Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to make jQuery 1.7 .on() hover?

Tags:

jquery

hover

I'm having a problem with dynamically created elements on hover state. When I hover on newly created html element, it doesn't work.

Here's my HTML code:

<button id="create">create new button</button>
<button class="hover">hover me</button>
<div></div>

jQuery:

var createBtn = $("#create");

createBtn.click(function() {
    $('div').append('<button class="hover">new hover button</button');  
    return false;        
}); 


$('.hover').hover(function() {
    alert('you hovered the button!');
}, function() {
    alert('you removed the hover from button!');
});

I even tried this code:

$('.hover').on({
    mouseenter : function() {
         alert('you hovered the button!');
    },
    mouseleave : function() {
        alert('you removed the hover from button!');
    }

});

as shown here http://api.jquery.com/on/, but still no luck. Here's also demo: http://jsfiddle.net/BQ2FA/

like image 826
Lado Lomidze Avatar asked Jul 18 '12 12:07

Lado Lomidze


1 Answers

This isn't the correct syntax.

Use this to listen to your events for dynamically created '.hover' elements :

$(document).on('mouseenter', '.hover',  function(){
         alert('you hovered the button!');
}).on('mouseleave', '.hover', function() {
        alert('you removed the hover from button!');
});
like image 168
Denys Séguret Avatar answered Sep 28 '22 13:09

Denys Séguret