2013-07-14 62 views
1

我正在制作评分系统,我希望它能够在您点击每个单词时提供充分的透明度。另外,当您将鼠标悬停在每个单词上时,其前面的单词也会突出显示。为什么mouseenter/mouseleave影响.click事件?

基本上,我遇到的唯一问题是,.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/

+1

点击它后,它仍然会触发mouseleave事件,然后将鼠标悬停在它之外;你应该在el上设置某种标志,也许是一个数据属性,点击它之后。然后检查mouseleave/mouseenter上的attr –

回答

1

现在,当你正在处理你引用的事件“本”事件。

更改您的代码看起来像这样:

$("#poor").click(function (event) { 
    var el = event.target || event.srcElement; 
    $(el).css("opacity", "1"); 
}); 

编辑:原来我错了,原因是因为当你做一个鼠标离开你正在改变元素的CSS属性,人后已点击,如果你设置当用户点击一个元素的标志,可以防止MouseLeave事件从发射

这里的的jsfiddle http://jsfiddle.net/jDjSu/

+0

好的,谢谢你的提示。 – Matthew

+0

什么样的标志?我是JS新手,很抱歉提问。我想我知道你的意思..就像某物=假? – Matthew

+0

检查JSFiddle – fm2munsh

2

的点击正确设置opacit y到1,但在此之后,您的mouseleave再次将不透明度设置为0.50。

因此,mouseleave没有做你的点击。

+1

大声笑多么愚蠢..谢谢!我会解决这个问题。 ;) – Matthew

相关问题