Tuesday, May 21, 2024
 Popular · Latest · Hot · Upcoming
152
rated 0 times [  155] [ 3]  / answers: 1 / hits: 42190  / 12 Years ago, wed, march 21, 2012, 12:00:00

I have a series of elements (lets call them '.my-elements') - some load on document ready, while others are loaded later via a pagination script.



I would like to set a variable according to whether or not the mouse is over these elements. The code below works, but I suspect there is a better way... Can I do this so I only have to reference the DOM once?



$(document).on('mouseenter','.my-elements', function(){
mouse_is_inside = true;
});

$(document).on('mouseleave','.my-elements', function(){
mouse_is_inside = false;
});


Thanks!


More From » jquery

 Answers
9

You can bind to both together and check the event.type:



$(document).on('mouseenter mouseleave', '.my-elements', function (ev) {
mouse_is_inside = ev.type === 'mouseenter';
});


Or, if you want to keep them separate, .on has another syntax that takes an event map:



$(document).on({
mouseenter: function () {
mouse_is_inside = true;
},

mouseleave: function () {
mouse_is_inside = false;
}
}, '.my-elements');

[#86689] Tuesday, March 20, 2012, 12 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
christianu

Total Points: 481
Total Questions: 124
Total Answers: 99

Location: Trinidad and Tobago
Member since Thu, Dec 1, 2022
2 Years ago
christianu questions
;