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!
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'); 
                        Check out jQuery hover which is the same as:
$(selector).mouseenter(handlerIn).mouseleave(handlerOut);   UPDATE: I just realized you need to persist the events via the on() method. In that case, you can use an event map like so:
.on({     mouseenter: function() {         console.log('enter');     },     mouseleave: function() {         console.log('bye!');     } }) 
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With