Bergi (堆栈溢出用户)非常友好地帮助我提出了一个使用jQuery进行图像交换的解决方案。它现在切换到悬停状态,但我想让它在你当前的子站点上保持突出显示(例如,我点击"Comics“页面,而"Comics”保持突出显示)。这有可能吗?谢谢!
<script type="text/javascript">
var images = {
"comicssubsite": [
"./images/SiteDesign/Comics_subsites_hover.png",
"./images/SiteDesign/Comics_subsites.png"
],
"artworksubsite": [
"./images/SiteDesign/Artwork_subsites_hover.png",
"./images/SiteDesign/Artwork_subsites.png"
],
"aboutsubsite": [
"./images/SiteDesign/About_subsites_hover.png",
"./images/SiteDesign/About_subsites.png"
],
"blog": [
"./images/SiteDesign/Blog_othersites_hover.png",
"./images/SiteDesign/Blog_othersites.png"
],
"facebook": [
"./images/SiteDesign/Facebook_othersites_hover.png",
"./images/SiteDesign/Facebook_othersites.png"
]
};
jQuery(document).ready(function($) {
$("#comicssubsite, #artworksubsite, #aboutsubsite, #blog, #facebook").hover(function(e) {
// mouseover handler
if (this.id in images) // check for key in map
this.src = images[this.id][0];
}, function(e) {
// mouseout handler
if (this.id in images)
this.src = images[this.id][1];
});
});发布于 2012-11-12 10:02:33
Zotal Toth的答案应该有效,但你应该考虑像这样改变你的mouseout处理程序,除非你想让图像在用户悬停时变回原来的样子:
// mouseout handler
var section = document.location.href.split("/")[url.split("/").length-1].split(".")[0];
if (this.id in images) {
if this.id != section
this.src = images[this.id][1];
}发布于 2012-11-12 09:58:01
下面假设您的页面名为comicssubsite.*、artworksubsite.*等:
var url = window.location.href;
for (key in images) {
if ( url.indexOf( key ) > -1 ) {
alert(key);
// highlight your menu item
$( "#" + key ).attr( "src", images[key][0] );
}
}https://stackoverflow.com/questions/13337353
复制相似问题