我一直在研究这个小提琴的一个分支——所有的道具都归原作者所有。
它旨在与 ImageMapster 一起使用,以在悬停在图像地图上时突出显示 html 列表项,反之亦然,在悬停列表项时突出显示适当的图像地图。正如您所期望的那样,它可以通过在适当的位置添加和删除一个类来工作。
我一直在尝试将该代码(及其变体)与 Drupal 7 一起使用,它为菜单项的锚点及其列表项包装器添加了大量自己的类。额外的标记导致上述脚本出现问题,让我摸不着头脑。
通过大量的试验和错误(我不太擅长 JS!)我已经意识到,特别是当 Drupal 向 li 添加一个 'menu-depth-1' 类时,脚本会丢失,并抛出错误(来自铬):
Uncaught Error: Syntax error, unrecognized expression: area[name=part-1 menu]
在上述脚本的这个分支中,我添加的只是 Drupal 添加的标记。
http://jsfiddle.net/PUncle/Tr4hE/32/
从以下位置更改原始脚本:
<li class="menu-item-a"><a href="#">Part A</a></li>
至:
<li class="leaf menu-depth-1 menu-item-a"><a href="#">Part A</a></li
据我了解,该脚本正在寻找一个带连字符的选择器,当它在到达所需的“menu-item-a”之前遇到“menu-depth-1”时,它会失败。
我认为正是脚本的这一部分有问题,但无论我尝试什么,我都不知道如何修复它。
function highlightArea(key) {
$('area[name=part-' + key + ']').mouseenter();
$('a').removeClass('hover');
$('li.menu-item-' + key + ' a').addClass('hover');
}
我需要做的是“强化”脚本,使其非常专门针对特定选择器并忽略其他任何内容。
我确实开始着手清理 Drupals 过多的菜单标记,但决定为“钝”代码扫清障碍可能不如锐化该代码有效,这样就没有其他东西可以影响它了!
任何指针将不胜感激。