2014-02-27 38 views
0

的jsfiddle這裏:http://jsfiddle.net/TmXFZ/JQuery的KEYUP不會觸發,而簡單地改變點擊觸發

這段代碼的功能是:如果按ALT而徘徊的表格單元格,單元格的背景顏色會發生變化。如果鼠標懸停或釋放ALT,則單元格的背景顏色會回到原始狀態。

但是,釋放ALT鍵時,顏色不會變回。

我想簡單地改變

$(document).keyup(function() { 

$(document).click(function() { 

上點擊,顏色變回完美。

那麼,爲什麼點擊觸發器,但keyup不?

+3

該鍵盤正常工作。你使用的是什麼瀏覽器?你那裏有無效的HTML。你不能在'tbody'中擁有'th'。 – putvande

+0

適用於我... – Evgeny

+0

這對我來說也適用於Chrome –

回答

1

在Firefox在Windows上就會打開file/edit/view...工具欄,如果你打ALT

由於alt有許多用途,並且在很多應用程序中是一個非常常見的快捷鍵/組合鍵,所以您應該將其綁定到另一個鍵。

0

認爲這可能是因爲你的代碼結構。您想要生成的方法與閱讀文檔不同。如果我能看到一些代碼可以工作,但我仍然可以構建可能有所幫助的東西,那將會很好。

這應該工作,但我有這種感覺$(this)將無法​​在第二個'懸停'功能。

$('td').mouseOver(function(){ 
    var td=$(this); 
    $(document).keydown(function(keycode,td){ 
     if(keycode.altKey)$(td).css({'background':'#FF0000'}); 
    }); 
    $(document).keyup(function(keycode,td){ 
     if(keycode.altKey)$(td).css({'background':'#00FF00'}); 
    }); 
},function(){ 
    $(this).css({'background':'#00FF00'}); 
}); 
+0

你的感覺是對的。每次都無法使用鍵盤。第一次懸停後,它工作正常,但第二次懸停不起作用。然後第三次作品,第四次沒有。我試圖找出原因。 – alexZ

+0

@alexZ所以如果您將鼠標放在元素上,請按alt,然後將鼠標移出元素。元素是否會改變顏色?我有另一個快速的想法。我會編輯我的答案。 – sourRaspberri

+0

@alexZ其實我真的很苦惱這個!大聲笑我仍然堅持。 – sourRaspberri