マウスオーバーとマウスアウトのイベントに応じて代替要素を表示する必要があるという要件があります。
デフォルト要素はハイパーリンク (onmouseover 以外では常に表示されます) で、代替要素はドロップダウン リスト要素 (ハイパーリンクのマウスオーバーで表示される必要があります) です。
2 つの要素の表示 (非表示/非表示) を切り替えるために JavaScript を使用しています。
問題は、マウスの範囲が select 要素のみに限定され、そのオプション値に限定されないことです。つまり、マウスを使用して DDL からオプション値を選択しようとすると、ブラウザーはそれをマウスアウトと見なし、要素を切り替えます。ドロップ ダウン リストのオプション要素の上にマウスを移動しても発生しません。これを修正する方法はありますか?
ここに私がこれまでに書いたものがあります。
JS コード
function showDDl()
{
document.getElementById("LINK").style.display='none';
document.getElementById("ddlLanguage").style.display='';
}
function hideDDl()
{
document.getElementById("ddlLanguage").style.display='none';
document.getElementById("LINK").style.display='';
}
HTML コード
<!--CODE FOR Hyperlink.. this is to be displayed at all times except at mouseover -->
<div id="LINK">
<a href='#' onmouseover="showDDl()" >
(Change Language)
</a>
</div>
<!--CODE FOR SELECT ELEMENT dispalyed at mouseover -->
<select style="display: none;" id="ddlLanguage" name="ddlLanguage" onmouseout="hideDDl()">
<option value="en"><bean:message key="common.lang.english"/></option>
<option value="fr"><bean:message key="common.lang.francais"/></option>
<option value="de"><bean:message key="common.lang.deutsch"/></option>
<option value="it"><bean:message key="common.lang.italiano"/></option>
<option value="es"><bean:message key="common.lang.espanol"/></option>
<option value="nl"><bean:message key="common.lang.nederlands"/></option>
</select>