是否可以将鼠标悬停(evt)与if条件结合使用

Is it possible to combine onmouseover(evt) with if condition?

本文关键字:if 条件 结合 evt 鼠标 悬停 是否      更新时间:2023-09-26

我有一张小地图,我想分别显示两个不同的信息类别。我在我的代码上放置了两个单选按钮,允许用户选择这些类别名称之一,当用户将鼠标移动到地图上时,应该出现与特定单选按钮相关的信息。我下面的代码仅适用于第一个单选按钮,当我再次选择第二个单选按钮时,会显示第一个信息!你能帮我做什么吗?同时我的代码结构有效,但我不能在这里编写所有代码。

这是我的代码:信息存储在以下矩阵中:

var myCantons = [];
myCantons[0]=[name,year,population,density,year,population,density];
myCantons[1]=[x,1982,1200000,1.2,1992,300000,1.8];
myCantons[2]=[y,1982,5000000,4,1992,390000,4.6];

单选按钮是:

<form action="">
   <input type="radio" name="againcies" value="SP" 
     "onchange="myShowValues(myEvent)"/>
   <input type="radio" name="againcies" value="Moody"            
     "onchange="myShowValues(myEvent)"/>

函数为:

function myShowValues(myEvent,detaset){
  if(dataset==1){
    document.getElementById('myLegCantName').firstChild.data =  myCantons[Id][0];
    document.getElementById('year').firstChild.data = myCantons[Id][1];
    document.getElementById('myLegCantVal').firstChild.data =(myCantons[Id][2]);
    document.getElementById('myLegCantVal2').firstChild.data =(myCantons[Id][3]);
  } else {
    document.getElementById('myLegCantName').firstChild.data = myCantons[Id][0]      
    document.getElementById('myLegCantRate').firstChild.data = myCantons[Id][4];
    document.getElementById('myLegCantVal').firstChild.data =(myCantons[Id][5]);                      
    document.getElementById('myLegCantVal2').firstChild.data =(myCantons[myScrId][6]);
  }
}

该地图包含许多多边形,这些多边形位于一组中,如下所示:

<g id="myCantons" fill="#A0C544" stroke="#FFFFFF" onmouseover="myShowValues(evt,dataset)">

如前所述,我的问题是在 if 条件部分中,它只能调用第一个单选按钮,而我无法应用 if 条件用于第二个按钮,您知道吗?

尝试做这样的事情:

<input type="radio" name="againcies" value="SP" 
 onchange="changeDataset(1)"/>
<input type="radio" name="againcies" value="Moody"            
 onchange="changeDataset(2)"/>

<g id="myCantons" fill="#A0C544" stroke="#FFFFFF" onmouseover="myShowValues()">

然后像这样的javascript:

var dataset = 1; // default value
function changeDataset(newval) {
   dataset = newval;
   // plus whatever else you need to do here
   // maybe myShowValues(); ???
}
function myShowValues(){
  if(dataset == 1){
     document.getElementById('myLegCantName').firstChild.data =  myCantons[Id][0];
     document.getElementById('year').firstChild.data = myCantons[Id][1];
     document.getElementById('myLegCantVal').firstChild.data =(myCantons[Id][2]);
     document.getElementById('myLegCantVal2').firstChild.data =(myCantons[Id][3]);
  } else {
     document.getElementById('myLegCantName').firstChild.data = myCantons[Id][0]      
     document.getElementById('myLegCantRate').firstChild.data = myCantons[Id][4];
     document.getElementById('myLegCantVal').firstChild.data =(myCantons[Id][5]);                      
     document.getElementById('myLegCantVal2').firstChild.data =(myCantons[myScrId][6]);
  }
}

需要注意的几件事..这不是有效的HTML:

"onchange="myShowValues(myEvent)"

报价太多了...