dem*_*ish 9 jquery jquery-selectors
我想知道是否可以使下面的代码更简洁:
$('#americasTrigger').hover(
function () {
$('#americasImg').fadeIn()
},
function(){
$('#americasImg').fadeOut()
}
);
$('#europeTrigger').hover(
function () {
$('#europeImg').fadeIn();
},
function(){
$('#europeImg').fadeOut();
}
);
$('#middleEastTrigger').hover(
function () {
$('#middleEastImg').fadeIn();
},
function(){
$('#middleEastImg').fadeOut();
}
);
//More etc
Run Code Online (Sandbox Code Playgroud)
每个国家/地区名称保持不变,并在末尾添加"触发器"或"Img".这里有很多重复,这表明我不会采用这种最佳方式.
我有想法:
这可能还是我太过花哨?
编辑1:非常感谢所有回复,对于没有发布html道歉,我已经把这个轰动了.总之,我在bg图像(地球)上使用图像映射作为悬停触发器,用于淡入/淡出我绝对定位的悬停图像.
<div class="mapTub">
<img src="images/transparentPixel.png" class="mapCover" usemap="#worldMap" width="524px" height="273px"/>
<map name="worldMap" id="worldMap">
<area id="americasTrigger" shape="poly" coords="1,2,3" href="#americas" />
<area id="europeTrigger" shape="poly" coords="4,5,6" href="#europe" />
<area id="middleEastTrigger" shape="poly" coords="7,8,9" href="#middleEast" />
</map>
<img src="images/International_americas_dark.png" class="americas" id="americasImg" />
<img src="images/International_europe_dark.png" class="europe" id="europeImg" />
<img src="images/International_middleEast_dark.png" class="middleEast" id="middleEastImg" />
</div>
Run Code Online (Sandbox Code Playgroud)
Reigel的答案似乎就是去这里的方式,生病尝试报告回来,欢迎进一步的评论!:)
我,不了解 html,建议这个......
\n\n$(\'#americasTrigger, #europeTrigger, #middleEastTrigger\').hover(\n function () {\n var id = this.id;\n $(\'#\'+id.replace(\'Trigger\', \'Img\')).fadeIn();\n //$(\'#\'+id.slice(\'0\',id.indexOf(\'Trigger\'))+\'Img\').fadeIn();\n },\n function(){\n var id = this.id;\n $(\'#\'+id.replace(\'Trigger\', \'Img\')).fadeOut();\n //$(\'#\'+id.slice(\'0\',id.indexOf(\'Trigger\'))+\'Img\').fadeOut();\n }\n);\nRun Code Online (Sandbox Code Playgroud)\n\n您也可以.replace()按照Anurag的建议使用在下面评论中
id =\'europeTrigger\';\nalert(id.slice(\'0\',id.indexOf(\'Trigger\'))); // alerts \'europe\'\n// \'#\'+id.slice(\'0\',id.indexOf(\'Trigger\'))+\'Img\' is \'#europeImg\'\nRun Code Online (Sandbox Code Playgroud)\n\n\xe2\x80\x8b
\n