私は一連のボタンを持っています。ボタンの1つでマウスを上げると、その特定のボタンは背面の色を変え、他のボタンは同じままにしておきたい。on mouse up changeボタン
どのようなポストバックなしでそれを行うにはどんな助け?
私は一連のボタンを持っています。ボタンの1つでマウスを上げると、その特定のボタンは背面の色を変え、他のボタンは同じままにしておきたい。on mouse up changeボタン
どのようなポストバックなしでそれを行うにはどんな助け?
ここでそれを行うにはかなり不格好な方法です:
<style>
.selected { background-color : red; }
</style>
<script>
var theForm = document.getElementById("someForm");
theForm.onmouseup = function(e) {
// allow for IE
if (!e) e = window.event;
var src = e.srcElement || e.target;
if (src.tagName.toLowerCase() === "input"
&& src.type.toLowerCase() === "button"){
src.className = "selected";
for (var i = 0; i < theForm.children.length; i++)
if (src != theForm.children[i])
theForm.children[i].className = "";
}
};
</script>
これは、ボタンが「someForm」と呼ばれる形式の子であると仮定し、「選択」クラスは、それが適切な色を持って存在する - 明らかにあなたは、あなたに合わせて、必要に応じてこれを修正しますマークアップ。
上記は、onloadハンドラ内にあるか、またはスクリプトブロックがソース内の要素の後ろのどこかにある必要があることに注意してください。
さらに、onclick
がonmouseup
よりはるかに適切であることに注意してください。
<button class="mouseup"> Click me </button>
<button class="mouseup"> Click me </button>
<button class="mouseup"> Click me </button>
$buttons = document.getElementsByClassName('mouseup');
for(var i = 0; i < $buttons.length; i++)
{
$buttons[i].onmouseup= function(){
this.style.background = 'blue';
for(var j = 0; j < $buttons.length; j++)
if($buttons[j] != this)
$buttons[j].style.background = '#F0F0F0';
}
}
ボタン上でonclickハンドラを使用するだけです。 'asp:Button'では、(OnClick'とは対照的に)ポストバックを行うのではなく、属性の' OnClientClick'を書きます。 –
CSS擬似セレクタ ':hover'を使用 –
マウス_up_?マウス_up_で変更してマウス_up_でリセットしたくないのですか?あなたはマウス_up_でのみ行う場合、色の変更は永久になります...ボタンのHTML、およびそれらが含まれているオブジェクト(フォームやdivなどにあると仮定)を表示してください。 – nnnnnn