2014-02-26 58 views
0

我想要做的是當我點擊任何李元素,它應該改變顏色。問題是,當我把一個:活動它在Android 4.0和更高版本但它不起作用在Android 2.3和更低。我不知道問題是什麼。是否有任何替代方式,我可以改變李的背景顏色,當我按下它?a:active沒有在電話上工作

HTML:

<div id="nav"> 
<ul id="navigation"> 
<li><a href="#">Requirements</a></li> 
<li><a href="#">Release dates</a></li> 
<li><a href="#">Game Plot</a></li> 
<li><a href="#">Game Review</a></li> 
<li><a href="#">About</a> </li> 
<li><a href="#">About</a> </li> 
</ul> 

CSS:

#navigation a:active 
{color:pink; 
background-color:#FF5C33; 
} 

注: 答:懸停在Android 2.3及以下作品。

+0

你忘了'#'id的'#navigation' –

+0

srry我忘了複製 –

回答

1

你可以使用JavaScript爲你做這件事,而不是依靠僞選擇器。

改變你的CSS這個...

#navigation a.active { 
    color:pink; 
    background-color:#FF5C33; 
} 

,並添加此javascript ...

$(function() { 
    $("#navigation a").on("mousedown", function() { 
     $(this).addClass("active"); 
    }).on("mouseup", function() { 
     $(this).removeClass("active"); 
    }); 
}); 

這應該在早期版本的Android的工作,這將使用的WebView的舊版本。

+0

看起來確定但僞類':active'不等於點擊,但在mousedown上,需要在mouseup上刪除 –

+0

@ A.Wolff是的 - 感謝您發現這一點。我會誤解這個問題,儘管使用':active',我認爲他是指點擊時的意思。 – Archer

1

從@射手的回答使用靈感,你可以使用JavaScript爲:

$(function() { 
    $("#navigation a").on("mousedown mouseup", function() { 
     $(this).toggleClass("active"); 
    }); 
}); 

jsFiddle

+0

比我的「固定」答案要乾淨得多(謝謝),但我不會刪除我的,因爲它也有css的變化。 – Archer

+0

現在想知道,在目標設備上正確支持'mousedown mouseup'嗎?可以使用touchstart和touchend事件,也許?仍然可以得到一些缺點,我不知道 –

+0

我目前正在自己​​的科爾多瓦應用程序,以及鼠標/觸摸事件的雷區。如果我們陷入困境,我們可以在這裏整整一週!我認爲這個問題mousedown&mouseup是正確的(直到明天!) – Archer

相關問題