0

我不让这个工作。我想通过 changeCSS 函数解决这个问题,这样我就可以传递不同的属性和值。

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

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

2 回答 2

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"));
});
于 2013-04-06T13:56:36.507 回答
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/

于 2013-04-06T14:08:47.980 回答