IE9 で簡単な機能を動作させるのに苦労しています。Chrome と FF で完全に動作します。目的は、2 つの「ul」リストを作成し、クリック時にそれらの間で「li」要素を移動することです。最初のコンテナー (MultiListAvailableElements) に青色の背景を持つ li 要素を配置し、マウス オーバーで緑色に変更したいと考えています。2 番目のコンテナー (MultiListSelectedElements) の反対側 - 緑の背景、マウス オーバーで青に変わります。
問題は、IE9 の要素が反対のリストに追加した後、ホバー状態を失うことがないように動作することです。マウスをそれらの上に(そして外に)移動して、本来のように見せる必要があります。したがって、たとえば、最初のコンテナから青色の要素をクリックすると、2 番目のコンテナに移動し、まだ青色のままです (2 番目のコンテナの青色はホバー状態専用です。マウスが要素の上にないため、デフォルトでは緑色になるはずです。要素は別の場所に移動しました)。次に、2 番目のコンテナー内の要素の上にマウスを移動して、要素を通常の状態 (緑色) に戻す必要があります。
HTML:
<div style="height: 210px; width: 600px;">
<div class="MultiListAvailableElements">
<ul id="OptionsUL">
<li id="id1" onclick="MLAdd(this)">1</li>
<li id="id2" onclick="MLAdd(this)">2</li>
<li id="id3" onclick="MLAdd(this)">3</li>
<li id="id4" onclick="MLAdd(this)">4</li>
<li id="id5" onclick="MLAdd(this)">5</li>
</ul>
</div>
<div class="MultiListSelectedElements">
<ul id="SelectedUL">
</ul>
</div>
</div>
CSS:
/* ------------------------------------ Available Elements --- */
.MultiListAvailableElements {
overflow-y: scroll;
width: 250px;
height: 200px;
border: 1px solid black;
}
.MultiListAvailableElements ul {
margin: 0px;
padding: 0px;
list-style-type: none;
}
.MultiListAvailableElements ul li {
background-color: #e5ecff;
border: 1px solid #c3caff;
width: 180px;
text-align: center;
margin-bottom: 2px;
padding: 2px;
cursor: pointer;
cursor: hand;
font-family: arial;
font-size: small;
}
.MultiListAvailableElements ul li:hover {
background-color: #e5ffec;
border: 1px solid #a3ffaa;
}
/* ------------------------------------ Selected Elements --- */
.MultiListSelectedElements {
overflow-y: scroll;
width: 250px;
height: 200px;
border: 1px solid black;
}
.MultiListSelectedElements ul {
margin: 0px;
padding: 0px;
list-style-type: none;
}
.MultiListSelectedElements ul li {
background-color: #e5ffec;
border: 1px solid #a3ffaa;
width: 180px;
text-align: center;
margin-bottom: 2px;
padding: 2px;
cursor: pointer;
cursor: hand;
font-family: arial;
font-size: small;
}
.MultiListSelectedElements ul li:hover {
background-color: #e5ecff;
border: 1px solid #c3caff;
}
JavaScript:
function MLAdd(Obj) {
document.getElementById("SelectedUL").appendChild(document.getElementById(Obj.id));
document.getElementById(Obj.id).onclick = function () { MLDel(Obj); }
}
function MLDel(Obj) {
document.getElementById("OptionsUL").appendChild(document.getElementById(Obj.id));
document.getElementById(Obj.id).onclick = function () { MLAdd(Obj);
}