2012-04-13 55 views
-2

my page上,如果我将鼠标悬停在某个状态上,则右侧的超链接会更改为悬停样式。有人可能会建议我怎样才能使相反的事情发生......当我将鼠标悬停在右侧的某个超链接上时,状态将突出显示(当我悬停在状态本身上时)?如何在鼠标悬停上创建高亮显示?

+2

你只需要做相反的事情。 – xdazz 2012-04-13 01:42:25

+1

@Jeff你能否更新你的帖子以包含适用于mouseover和mouseout的代码。此外,图像映射的HTML源代码和链接的HTML样本也很好。欢迎来到StackOverflow。 – rlemon 2012-04-13 01:47:54

+0

问题现在对没有代码的未来读者是没用的。好工作OP! – Sparky 2012-04-18 21:35:09

回答

1

非常简单地使用jQuery的.trigger();

作为示例:$('#A0').trigger('mouseover');将突出显示地图中的第一个元素(华盛顿)。

所以<a class="staffs staff-A0" href="#">Washington</a>你可以添加这对鼠标悬停事件:

var map_element_id = '#' + this.className.split('-')[1]; 
$(map_element_id).trigger('mouseover'); 

当然的onmouseout需要一并处理了。 有许多方法可以处理map_element_id变量的赋值。我建议你分配一个单独的属性来存储这个,而不是一个类名(可能是数据映射ID?)。对' - '进行分割与这个例子一起工作,但想象一下,如果向包含' - '的元素添加更多的类名称,这将会失败。

+0

是的,你是点? – rlemon 2012-04-13 01:54:53

+0

地图ID是'A0'而不是'starff-A0' – rlemon 2012-04-13 01:55:10

+0

哦......现在我明白了,我的不好;) – Starx 2012-04-13 01:55:32

0

获取地图区域的id并触发mouseover事件。

$('.staff').mouseover(function() { 
    var id = $(this).attr("class").split("-")[1]; 
    $("#"+id).trigger('mouseover'); 
}); 
+0

为什么在使用本地方法时用jQuery包装所有'this'更简单,更快。 this.className.split( ' - ')[0];在一行中做什么你在两个性能较差(不是在这个例子中,它会影响)。有些时候我们太快把你的东西放在一个$() – rlemon 2012-04-13 01:56:55

+0

@rlemon中,你是对的,但在这种情况下,它几乎可以忽略 – Starx 2012-04-13 01:59:03

+0

但学习良好实践永远不会忽略:P这是好的编程者如何进入坏习惯。 – rlemon 2012-04-13 02:09:03

相关问题