我在div
中有三个彩色方框,所有颜色都不同,当我hover
在任何这些方框上时,我必须制作父background-color
div
与正在盘旋的内盒颜色相同的颜色显示。
CSS:
.t1_colors {
float: left;
width: 100px;
height: 100px;
margin-right: 20px;
border: 1px solid rgb(111,61,69);
}
HTML:
<div id="task1" class="task">
<h2>Task 1</h2>
<p>Change the background color, of the div that contains this task, to the color in each box when the box is hovered over.</p>
<p>When the mouse stops hovering over the box, change the background color back to white.</p>
<div id="t1_color_one" class="t1_colors" style="background: goldenrod;"></div>
<div id="t1_color_two" class="t1_colors" style="background: lightgreen;"></div>
<div id="t1_color_three" class="t1_colors" style="background: palevioletred;"</div>
</div>
我们班正在使用addEventListener
,如果这样可以让任何事情变得更容易。提前感谢您的任何反馈,我们将不胜感激。
答案 0 :(得分:4)
查看纯JavaScript:
<div>
<div id="child" onMouseOver="this.parentNode.style.background='red'">Hover Me</div>
</div>
使用jQuery:
$("#child").hover(function(){
$(this).parent().css("bakground,"red");
});
更新不点击它的悬停。
答案 1 :(得分:0)
var parent = document.getElementById("task1");//get parent element
var item1 = document.getElementById("t1_color_one");//get child element
item1.addEventListener("mouseover", func, false);//add event listener for first item on mouseover and call func when someone mouse overs it
function func()
{
parent.setAttribute("style", item1.getAttribute("style"));//set the style attribute of the parent to the style attribute of the child
}
然后你可以为其余的人做类似的事情。
答案 2 :(得分:0)
以下是纯javascript中的答案
window.addEventListener('load', function(event)
{
var divs = document.getElementsByClassName('t1_colors');
var count_of_divs = divs.length;
for(var i = 0; i<count_of_divs; i++)
{
divs[i].addEventListener('mouseover', function(e)
{
document.getElementById('task1').setAttribute('style', e.target.getAttribute('style'));
}, false);
divs[i].addEventListener('mouseout', function(e)
{
document.getElementById('task1').removeAttribute('style');
}, false)
}
}, false);
你可以在jsFiddle link中查看它。
答案 3 :(得分:0)
使用以下代码:
<html>
<head>
<style>
.t1_colors {
float: left;
width: 100px;
height: 100px;
margin-right: 20px;
border: 1px solid rgb(111,61,69);
}
</style>
</head>
<body>
<div id="task1" class="task">
<h2>Task 1</h2>
<p>Change the background color, of the div that contains this task, to the color in each box when the box is hovered over.</p>
<p>When the mouse stops hovering over the box, change the background color back to white.</p>
<div id="t1_color_one" class="t1_colors" style="background: goldenrod;">ugy</div>
<div id="t1_color_two" class="t1_colors" style="background: lightgreen;">hjk</div>
<div id="t1_color_three" class="t1_colors" style="background: palevioletred;">jkk</div>
</div>
</body>
<script>
try
{
function change_bgcolor(elem)
{
elem.addEventListener('mouseover', function(){elem.parentNode.style.backgroundColor=elem.style.backgroundColor}, false);
}
function f1()
{
div_arr=document.getElementsByTagName('div');
for(x in div_arr)
{
if(div_arr[x].parentNode.tagName=="DIV")
{
change_bgcolor(div_arr[x]);
}
}
}
}
catch(e)
{alert(e);}
onload=f1();
</script>
</html>
Fiddle 此处