我有一个带有交互式美国地图的页面。每个状态都是基于数据库设置可互换的图像(它不是一个大图像和/或图像映射)。我还有一个无序列表(项目绝对位于其相应状态之上)设置为可点击元素以更改 div 的内容。div 包含自己的 div 中的所有内容;显示哪个 div 基于具有“活动”类。脚本和标记可以在这里查看:https ://gist.github.com/3239999
由于 png 图像的重叠,图像本身不能可靠地成为可点击元素,但我希望状态在可能的情况下引导链接。
要点中的代码适用于任何地方,但在新英格兰/东海岸地区的小州的 IE 中除外。我可以通过一些 z-index 工作来解决它,但它并非完美无缺。在某些情况下,您仍然必须单击正确的位置(这不是很明显)。
我愿意为 IE 使用不同的脚本,但我似乎无法将其更改为仅使用 li 作为指示器并在 IE 中工作。我试过这个没有成功:
<script type="text/javascript">
$(document).ready(function() {
switchers = $('#switchers > li');
states = $('#state_info > div');
switchers.each(function(idx) {
$(this).data('state', states.eq(idx));
}).click(function() {
switchers.removeClass('active');
states.removeClass('active');
$("#_" + $(this).attr('id')).addClass('active');
$("#_" + $(this).attr('id')).data('state').addClass('active');
});
});
</script>
我不像我想的那样精通jquery,尤其是解决跨浏览器问题。
任何人都可以帮助我更好地工作吗?
你可以在这里看到最有效的版本:http ://www.envisiondemo.com/lookout/state-and-federal-i-9-compliance/
实际站点是实时的,但我正在使用演示服务器进行测试。我已经将 li 的样式设置为在 IE 中具有红色边框,这可以帮助您查看问题区域的位置。似乎最糟糕的是西弗吉尼亚州和弗吉尼亚州。由于他们从一个角度相互拥抱,我无法更改 z-index 来修复它。一个总是会过度重叠另一个。