2017-01-11 4 views
0

ここに私はtextfieldを持っています。onmousehoverの機能は以下の通りです。ここで javascriptでマウスを動かすとdivの色が変わります

<h5 style="float:right;" id="showall" onmouseover="mouseOver()" onmouseout="mouseOut()">Show All</h5> 

は私が ショーにホバリングした後のコードではありません以上のすべての div

<div id="abc"> 
    <input type="text"> 
</div> 

はここに私のJavaScript

function mouseOver() { 
    document.getElementById("abc").style.color = "red"; 
    } 

    function mouseOut() { 
    document.getElementById("abc").style.color = "black"; 
    } 

あるホバー効果を適用する必要がいるdiv要素でありますワーキング。誰でも私が間違っている場所を教えてもらえますか?

+1

あなたはテキストボックスの値の色を変更したい場合は、テキストボックスにIDを使用しています。 https://jsfiddle.net/tqbncf26/ –

答えて

0

あなたはinput自体にid="abc"を与えるか、またはこのような何か行うことができ、次のいずれか

<div id="abc"> 
    <input style="color: inherit" type="text"> 
</div> 

Working Codepen

+0

これをタグに付けるには? – Kirataka

+0

@Kiratakaあなたはどういう意味ですか?コード/例を提供してください。たぶん、同じコードをフォークしますか? – tanmay

0

あなたはdivの上の色の変化を適用しているが。あなたは入力ボックスにそれを適用する必要があります。

<div id="abc"> 
    <input id="xyz" type="text"> 
</div> 


    function mouseOver() { 
    document.getElementById("xyz").style.color = "red"; 
    console.log("In"); 
    } 

    function mouseOut() { 
    document.getElementById("xyz").style.color = "black"; 
    console.log("Out"); 
    } 
0

一般的に、要素のColorプロパティはブラウザによって異なります。そのため、colorプロパティを親要素に設定すると、明示的に指定されていない限り、すべてのブラウザで同じ効果が得られません。

ここにあなたができることがあります。これが直接のJavaScriptに関するご質問にお答えしていませんが

function mouseOver() { 
 
    document.getElementById("abc").style.color = "red"; 
 
} 
 

 
function mouseOut() { 
 
    document.getElementById("abc").style.color = "black"; 
 
}
#abc * { 
 
    color: currentcolor; 
 
}
<h5 id="showall" onmouseover="mouseOver()" onmouseout="mouseOut()">Show All</h5> 
 

 
<div id="abc"> 
 
    <input type="text" value="Sample Text"> 
 
</div>

1

は、私はJavaScriptを常に回すことができるので、カスケーディングスタイルシート(CSS)は、この問題を解決するためのより良い方法があることを指摘したいですブラウザでオフにします。その場合、マウスオーバー機能は機能しなくなりますが、スタイルシートはそのまま残ります。

#abc input { 
 
    background-color: red; 
 
    color: black; 
 
} 
 

 
#abc input:hover { 
 
    background-color: blue; 
 
    color: white; 
 
}
<div id="abc"> 
 
    <input type="text" value="mouseover me"> 
 
</div>

それは同じ結果を達成した場合は、JavaScriptを介してCSSに優先順位をつけます。ここで

0

  
 
    <h5 style="float:right;" id="showall" onmouseover="mouseOver()" onmouseout="mouseOut()">Show All</h5> 
 
    <div id="abc"> 
 
    To they four in love. Settling you has separate supplied bed. Concluded resembled suspected his resources curiosity joy. Led all cottage met enabled attempt through talking delight. Dare he feet my tell busy. Considered imprudence of he friendship boisterous. 
 
    </div> 
 
    <script> 
 
     function mouseOver() { 
 
     document.getElementById("abc").style.color = "red"; 
 
     } 
 
    
 
     function mouseOut() { 
 
     document.getElementById("abc").style.color = "black"; 
 
     } 
 
    </script>

作業スニペットです。これはあなたを助けるかもしれません

0

これを行うための非常に迅速な方法は、 'トグル'を使用することです。あなたはあなたのCSSであなたが望む色で2つのクラスを作成することができます。 javascriptのあなたのラインでは、あなたのdivの既存のクラスとトグルしたい色を参照してください。

/* here you use javascript to cycle between blue and gold. First you find the div by using document.getElementById('element')*/ 
 

 
function push() { 
 
    document.getElementById("abc").classList.toggle('blue'); 
 
}
#abc { 
 
    width: 200px; 
 
    height:150px; 
 
    padding: 20px; 
 
    font-family: arial; 
 
    color: black; 
 
} 
 

 
/*Your first colour to toggle*/ 
 
.gold { 
 
    background: gold; 
 
} 
 
/*Your second colour to toggle*/ 
 
.blue { 
 
    background: dodgerblue; 
 
}
<!-- Notice that a class of 'gold' has been added to give the div a color. This will be toggled with your desired colour. --> 
 

 
<div id="abc" class="gold" onmouseover="push()"> 
 
Hover over here to toggle classes. 
 
</div>

関連する問題