为什么mouseenter / mouseleave会影响.click事件?

时间:2013-07-14 04:18:21

标签: jquery

我正在制作一个评分系统,我想要它,所以当你点击每个单词时,它会给它完全透明。此外,当您将鼠标悬停在每个单词上时,其前面的单词也会突出显示。

基本上,我遇到的唯一问题是.click();事件不起作用。如果你拿出上面的所有代码,它只能 ONLY

    // This isn't working:
$("#poor").click(function () {
    $(this).css("opacity", "1");
});

$("#good").click(function () {
    $(this).css("opacity", "1");
});

$("#great").click(function () {
    $(this).css("opacity", "1");
});

jsFiddle演示 :: http://jsfiddle.net/MatthewKosloski/rjFpn/1/

2 个答案:

答案 0 :(得分:2)

点击正确将不透明度设置为1,但之后您的鼠标距离再次将不透明度设置为0.50。

所以mouseleave没有取消你的点击。

答案 1 :(得分:1)

现在,当您处理事件时,您将事件称为“此”。

将您的代码更改为:

$("#poor").click(function (event) {
    var el = event.target || event.srcElement;
    $(el).css("opacity", "1");
});
编辑:事实证明我错了,原因是当你做一个鼠标离开时你正在改变元素的css属性,在用户点击之后,如果你为用户点击一个元素设置了一个标志,你可以防止mouseleave事件被触发

这是JSFiddle http://jsfiddle.net/jDjSu/