$('#dial1,#dial2').hover(
function() { changePosition('0 ' + (parseInt(this.id.match(/\d+$/)[0])) * -120 + 'px'); },
function() { changePosition('0 0'); }
);
function changePosition(position) {
$('#dialpad').css('backgroundPosition', position);
}
Обновление:
В качестве альтернативы, если «горячие точки» появляются на странице в том же порядке, что и номера индексов, тогда вы могли бы воспользоваться несколько более эффективным подходом, назначить им всем класс и использовать свойство index
.each()
для определить правильный порядковый номер.
$('.hotspots').each(function( idx ) {
$(this).hover(
function() { changePosition('0 ' + ((idx + 1) * -120) + 'px'); },
function() { changePosition('0 0'); }
);
});
function changePosition(position) {
$('#dialpad').css('backgroundPosition', position);
}
На самом деле, вам действительно не нужна функция changePosition()
, если она вам не нужна. Код достаточно короткий, поэтому небольшое повторение не имеет большого значения.
$('.hotspots').each(function( idx ) {
$(this).hover(
function() { $('#dialpad').css('backgroundPosition', '0 ' + ((idx + 1) * -120) + 'px')},
function() { $('#dialpad').css('backgroundPosition', '0 0'); }
);
});