2016-01-22 143 views
1

我想知道如何将这2个函数转换为1个函数。如何使用onmouseover更改颜色?

function test1() { 
       document.getElementById('div1').style.color = 'red'; 
      } 
function test2() { 
       document.getElementById('div1').style.color = 'blue'; 
      } 


    <div onmouseover="test1()" onmouseout ="test2()" id="div1"> 
    </div> 

回答

1

物体和色彩传递给test方法

function test(thisObj, color) 
{ 
    thisObj.style.color = color; 
} 

<div onmouseover="test(this, 'red')" onmouseout ="test(this, 'green')" id="div1"></div> 
1

如果你想用JavaScript你做可以这样做。

JS:

window.onload = function(){ 
     var htmlDiv = document.getElementById("div1"); 

     htmlDiv.addEventListener('mouseover',function(){ 

      htmlDiv.style.color = "red";  
     }) 

     htmlDiv.addEventListener('mouseout',function(){ 
      htmlDiv.style.color = "blue";  
     }) 
     } 

HTML:

<style> 
     #div1{ 
     width:100px; 
     height : 100ppx; 
     border :1px solid black; 
     } 
     #div1 { 
     color:blue; 
     } 
    </style> 

这里是plunker

1

我会建议CSS :hover Selector

如果你想改变JavaScript类,我会建议jQuery:

jQuery addClass() Method

jQuery removeClass() Method

hover()

mouseover()

hasClass()

至于你要求一个函数来做到这一点,你可以写:

function manageHoverColor(){ 
    if($("#hoverTestDiv").hasClass("mouseHovered")){ 
     $("#hoverTestDiv").removeClass('mouseHovered'); 
    }else{ 
     $("#hoverTestDiv").addClass('mouseHovered'); 
    } 
} 


$("#hoverTestDiv").mouseover(manageHoverColor); 
$("#hoverTestDiv").mouseout(manageHoverColor); 

,或者你可以这样做:

$("#hoverTestDiv").mouseover(function() { 
 
    $("#hoverTestDiv").addClass('mouseHovered'); 
 
    }); 
 

 
$("#hoverTestDiv").mouseout(function() { 
 
    $("#hoverTestDiv").removeClass('mouseHovered'); 
 
    });
.ordinaryText { 
 
    color: #00FF00; 
 
} 
 

 
.ordinaryText.mouseHovered { 
 
    color: #FF0000; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 

 
<div id="hoverTestDiv" class="ordinaryText" > I am div to test jQuery mouse hover <div>