传递参数来改变css

时间:2013-04-06 13:54:03

标签: jquery css parameters

我不这样做。我想要改变CSS函数的解决方案,以便我可以传递不同的属性和值。

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

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

2 个答案:

答案 0 :(得分:3)

它不起作用,因为在changeCSSthis === 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"));
});

答案 1 :(得分:0)

我不相信鼠标悬停可以这样使用,只是一个功能。我假设你只想在鼠标结束时改变css,并在它离开后改回来..如果不是你可以删除mouseleave功能:

$("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/