Щелкните обработчики для полигонов СВГ


Как я могу написать это короче?

$('#pietra_svg #p1_4 polygon#p1').click(function() {
  $('#apla_p1').fadeIn("slow");
  return false;
});
$('#pietra_svg #p1_4 polygon#p2').click(function() {
  $('#apla_p2').fadeIn("slow");
  return false;
});
$('#pietra_svg #p1_4 polygon#p3').click(function() {
  $('#apla_p3').fadeIn("slow");
  return false;
});
$('#pietra_svg #p1_4 polygon#p4').click(function() {
  $('#apla_p4').fadeIn("slow");
  return false;
});
$('#pietra_svg #p5 polygon#a').click(function() {
  $('#apla_p5').fadeIn("slow");
  return false;
});
$('#pietra_svg #p5 polygon#b').click(function() {
  $('#apla_p5').fadeIn("slow");
  return false;
});
$('.close').click(function() {
  $('.apla').fadeOut("slow");
  return false;
});


513
4
задан 7 ноября 2011 в 01:11 Источник Поделиться
Комментарии
1 ответ

Вы можете использовать массив подобным образом здесь. Только оставьте последний, так как он не подходит по той же схеме.

$.each(
[
{ poly: 'p1', id: '#apla_p1' },
{ poly: 'p2', id: '#apla_p2' },
{ poly: 'p3', id: '#apla_p3' },
{ poly: 'p4', id: '#apla_p4' },
{ poly: 'a', id: '#apla_p5' },
{ poly: 'b', id: '#apla_p5' }
],
function(o){
var id = o.id; // copy to closure
$('#pietra_svg #p1_4 polygon#' + o.poly).click(function() {
$(id).fadeIn("slow");
return false;
});
}
);

$('.close').click(function() {
$('.apla').fadeOut("slow");
return false;
});

3
ответ дан 7 ноября 2011 в 02:11 Источник Поделиться