Вы можете получить классы, назначенные элементу, используя свойство className
, однако, поскольку элемент может иметь несколько классов, есть вероятность неоднозначности, мешающей вам знать, какой класс использовать.
Однако,если вы можете гарантировать присутствие только одного класса, сделайте следующее:
$('area').hover(function () {
var theClass = $(this).prop('className');
$('img.' + theClass).fadeIn(200);
}, function () {
var theClass = $(this).prop('className');
$('img.' + theClass + ':not(.stay)').fadeOut(200);
});
Если существует несколько классов, вы можете рассмотреть возможность использования атрибута data-*
HTML;
<area data-target="THECLASS" />
и затем в вашем коде;
$('area').hover(function () {
var theClass = $(this).data('target');
$('img.' + theClass).fadeIn(200);
}, function () {
var theClass = $(this).data('target');
$('img.' + theClass + ':not(.stay)').fadeOut(200);
});
Для получения дополнительной информации см. Документацию по методам prop()
и data()
.
Кроме того, поскольку вы привязываете к лотам элементов, вы можете исследовать и использовать делегирование событий.Для версии jQuery> = 1,7 см. on()
, а для более старых версий см. delegate()
.