jQuery débutant ici.Comment consolider mon code jQuery répétitif en une seule fonction?
Voici ce sur quoi je travaille. J'ai une carte de zone avec 10 hotspots dessus. Passez la souris sur chacun des hotspots et déplacez l'arrière-plan du div (id = dialpad) pour afficher d'autres données (dans un sprite).
Le code que j'ai actuellement fonctionne, mais j'ai une fonction séparée pour chaque ID de point d'accès.
Ex:
$('#dial1')
// On mouse over, move the background on hover
.mouseover(function() {
$('#dialpad').css('backgroundPosition', '0 -120px');
})
// On mouse out, move the background back
.mouseout(function() {
$('#dialpad').css('backgroundPosition', '0 0');
})
$('#dial2')
// On mouse over, move the background on hover
.mouseover(function() {
$('#dialpad').css('backgroundPosition', '0 -240px');
})
// On mouse out, move the background back
.mouseout(function() {
$('#dialpad').css('backgroundPosition', '0 0');
});
...
Ce que je veux faire est de consolider ce code dans une fonction unique où je passe simplement le chiffre décalage vertical de chaque ID de zone.
Quelqu'un peut-il vous aider?
Neat ... mais ne laissez-vous 'passer le décalage vertical'. – sje397
@ sje397 - Bien sûr que oui. Le résultat de 'parseInt()' est multiplié par '-120'. J'ai juste oublié d'ajouter le 'px' à la chaîne. Mise à jour ... – user113716
$(). Hover() est un raccourci pour mouseenter/mouseleave, pas mouseover/mouseout. D'une part j'apprécie la brièveté de cette solution ... mais l'appariement d'expressions régulières pour déterminer le décalage? Sentiments mixtes ... – jmar777