2013-04-06 2 views
0

이 기능을 사용하지 마십시오. 다른 속성과 값을 전달할 수 있도록 changeCSS 함수를 통해 솔루션을 원합니다.CSS를 변경하기위한 매개 변수를 전달하십시오.

$("div").on("mouseover", changeCSS("opacity","0.5")); 

function changeCSS(prop,val) { 
$(this).css(prop, val); 
} 
+0

이 나에게 무의미한 것 - 그냥 ("mouseover", function() {$ (this) .css ("opacity", "0.5");});'? 그렇지 않다면 - Daniel Imms 대답은 정확합니다 – Bill

답변

3

이 작동하지 않는 경우 changeCSS, this === window 내부에 있기 때문이다. 요소를 전달해야합니다. 또한 사용자 정의 인수를 제공하려면 .on() 함수를 제공해야합니다.

$("div").on("mouseover", function() { 
    changeCSS(this, "opacity", "0.5")); 
}); 

function changeCSS(elem, prop, val) { 
    $(elem).css(prop, val); 
} 

이미 완료했을 수 있지만 불투명도를 복원하는 mouseleave 이벤트가 있어야합니다.

$("div").on("mouseleave", function() { 
    changeCSS(this, "opacity", "1")); 
}); 
+0

감사합니다 .. 차단 된 의견이 있습니다.) – andibra

+0

문제가 없으므로 진드기를 치아 대답을 수락하는 것을 잊지 마십시오. –

0

나는 마우스 오버가 그런 식으로 사용할 수 있다고 믿지 않는다. 내가하지 당신이하는 MouseLeave 기능을 제거 할 수 있다면 ... 당신은 단지 CSS 마우스가 끝나면 변경하고, 잎 후 다시 변경하려면 가정

$("div").bind("mouseenter",function(){ 
    changeCSS(this, "opacity", "0.5"); 
}).bind("mouseleave",function(){ 
    changeCSS(this, "opacity", "1"); 
}); 
function changeCSS(ele, prop,val) { 
    $(ele).css(prop, val); 
} 

http://jsfiddle.net/x2vhN/

관련 문제