2014-02-26 44 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

相关问题