2013-07-14 64 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

相關問題