I want to trigger an event when my mouse enters a div, and a separate event when it leaves the div using jQuery. I know that there are many plugins, code examples, etc. that solve this particular problem. I'm just wondering which path would be most efficient in terms of performance and memory management.
So, for example, suppose we have HTML code:
<div class="mouse-trap"> 1 </div>
<div class="mouse-trap"> 2 </div>
...
<div class="mouse-trap"> n-1 </div>
<div class="mouse-trap"> n </div>
1. Individual events
We can support events separately. This code is readable and easy to use.
$(".mouse-trap").bind('mouseenter', function() {
});
$(".mouse-trap").bind('mouseleave', function() {
});
2. Nested events
, "mouseleave" , , , , , mouseenter mouseleave.
$(".mouse-trap").bind('mouseenter', function() {
$(this).one('mouseleave', function() {
});
});
, n, , jQuery n x 2.
, , div , n + 1 .
, , , , , . n , , . , n ? ?
, , divs?
:
<div class="mouse-trap">
<div class="mouse-trap">
<div class="mouse-trap">
...
</div>
<div class="mouse-trap">
...
</div>
</div>
...
<div class="mouse-trap">
...
</div>
</div>
n divs, .
, , "mouseleave" div, . , n x 2, div.
, . , , jQuery , , , . , /dequeuing, , O (1), O (n). - ?
1 , ( div.mouse ). n x 2 , .
2 n , , . . ( , ) , . .
, , , , , , - ? , , , ?
. , . , , .