Одна вещь, которую вы можете сделать, это вместо того, чтобы назначать обработчик событий для каждого div
, вы можете назначить один обработчик для родительского элемента, а затем просто выбрать, какой div
был перемещен в зависимости от цели события.
HTML:
<div id="parent">
<div>1</div>
<div>2</div>
<div>3</div>
</div>
Javascript:
document.getElementById('parent').onmouseover = function(e) {
var target = e.target || e.currentTarget;
alert('Target ' + target.innerHTML + ' was moused over');
};
Скрипка: http://jsfiddle.net/ZhpLA/
Как уже отмечали другие, jQuery также делает этот код немного меньше кода (хотя, если это все, что вам нужно, это будет бессмысленно):
$('#parent').on('mouseover', 'div', function(e) {
alert('Target ' + e.currentTarget.innerHTML + ' was moused over');
});
Преимущество приведенного выше кода jQuery заключается в том, что он будет применяться как к текущему, так и к будущему дочернему div
с #parent
. Если вы добавите еще программно, событие mouseover
продолжит работать и для них.