Ari*_*iel 2 jquery class map area hover
我正在开发一个类似于编写游戏的零件地图的应用程序,当我将某个类别的区域悬停在某个区域时,我需要一个与该区域相同的图像来淡入.
这就是我的工作:
$(document).ready(function() {
$("area.THECLASS").hover(function() {
$("img.THECLASS").fadeIn(200);
}, function() {
$("img.THECLASS:not(.stay)").fadeOut(200);
);
});
Run Code Online (Sandbox Code Playgroud)
我将要有很多部件和类,我需要让它工作,以便它可以识别与悬停区域相同的类的img并淡入它.
有没有办法做到这一点?
您可以使用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);
});
Run Code Online (Sandbox Code Playgroud)
如果存在多个类,您可能需要考虑使用data-* HTML属性;
<area data-target="THECLASS" />
Run Code Online (Sandbox Code Playgroud)
然后在你的代码中;
$('area').hover(function () {
var theClass = $(this).data('target');
$('img.' + theClass).fadeIn(200);
}, function () {
var theClass = $(this).data('target');
$('img.' + theClass + ':not(.stay)').fadeOut(200);
});
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅有关prop()和data()方法的文档.
此外,由于您绑定了许多元素,因此您可能希望研究和使用事件委派.对于jQuery版本> = 1.7,请参阅on()旧版本delegate().