如何将多个变量组合在一起,使它们的行为相同?

时间:2011-07-25 20:33:38

标签: javascript

我有一种效果,当你将它们中的任何一个悬停时,我想要发生在所有3个不同的元素上,但是我在将变量组合在一起时遇到了麻烦,所以它们都可以起到相同的作用

我写的代码是我认为将它们组合在一起的代码。

 var germany=new Array(); 
    germany[0]=germany1_poly;      
    germany[1]=germany2_poly;
    germany[2]=germany3_poly;


google.maps.event.addListener(germany, "mouseover",function() {
     germany.setOptions({ fillColor: "#ff0000", strokeColor: "#ff0000" });
});

2 个答案:

答案 0 :(得分:3)

var i;
for(i = 0; i < germany.length; i++){
    google.maps.event.addListener(germany[i], "mouseover",function() {
         germany.setOptions({ fillColor: "#ff0000", strokeColor: "#ff0000" });
    });
}

答案 1 :(得分:0)

如果我正确地阅读了您的问题,您希望在其中任何一个上观察鼠标悬停时更新所有三个区域。 这是一些应该有用的咖啡因,下面是相应的javascript。

CoffeeScript的:

germany = [
  germany1_poly      
  germany2_poly
  germany3_poly
]

areas_effect = (areas) ->
  for area in areas
    area.setOptions({ fillColor: "#ff0000", strokeColor: "#ff0000" })

areas_observer = (areas) ->
  for area in areas
    google.maps.event.addListener(area, "mouseover", areas_effect(areas))

areas_observer(germany)

javascipt的:

var areas_effect, areas_observer, germany;
germany = [germany1_poly, germany2_poly, germany3_poly];
areas_effect = function(areas) {
  var area, _i, _len, _results;
  _results = [];
  for (_i = 0, _len = areas.length; _i < _len; _i++) {
    area = areas[_i];
    _results.push(area.setOptions({
      fillColor: "#ff0000",
      strokeColor: "#ff0000"
    }));
  }
  return _results;
};
areas_observer = function(areas) {
  var area, _i, _len, _results;
  _results = [];
  for (_i = 0, _len = areas.length; _i < _len; _i++) {
    area = areas[_i];
    _results.push(google.maps.event.addListener(area, "mouseover", areas_effect(areas)));
  }
  return _results;
};
areas_observer(germany);
相关问题