2011-06-20 14 views
17

BB'nin "Vurgulanan durumu" tetikleyecek:Javascript kullanarak CSS "vurgulu durumu" nasıl tetiklenir? Kullanıcı bir öğenin üzerine geldiğinde

<style> 
.element{ 

} 
.element:hover{ 
    background-color:red; 
} 
</style> 

nasıl Javascript kullanarak elemanı "devlet süpürdü" olarak ayarlanmış olabilir?

Mümkün mü? yerine üzerine gelindikten :focus kullanarak kabul olsaydı

+0

Çivilerin çivi olmaması için bir çekiç aldığınız anlaşılıyor. Tam olarak ne yapmaya çalışıyorsun? –

+0

ne zaman tetiklemek istiyorsun? – Balanivash

+1

@Balanivash: bunu doğrulayın. Neden hover'ı kendi başına tetiklemek istiyor? Neden stili kopyalayıp yapıştırmamalı ve element.className = 'newClass' kullanmamalı? –

cevap

6

, şunları kullanabilirsiniz:

var links = document.getElementsByTagName('a'); 
links[0].focus(); 

JS Fiddle demo.

Ya

var linkToFocus = document.getElementById('link'); 
linkToFocus.focus(); 

JS Fiddle demo

.

Bu yaklaşım, belli ki, a:focus stilini içerecek şekilde CSS adapte edilmesi gerekir: sadece elemana o sınıf adını ekleyerek daha sonra başka sınıfa stilleri gelin ve:

a:link, a:visited { 
    background-color: #fff; 
} 
a:hover, a:focus, a:active { 
    background-color: #f00; 
} 
+1

Ama neden böyle bir şey yapılmalı? –

+1

@the_drow: Kesinlikle hiçbir fikrim yok; ama belki de sayfa yükündeki bir şeyi göstermek/vurgulamaktan şüphelenirim. Elbette bunu yapmanın daha iyi yolları vardır, ama daha fazla bilgi olmadan sadece sorulan soruya cevap vermeye çalışabilirim. Kullanım durumundan bağımsız olarak, ne yazık ki. –

9

Muhtemelen çoğaltarak daha iyiyiz kalıcı olarak değiştirmek istediğinizde. Sözde sınıflar bir nedenden ötürü "sözde" dir.

+0

Şu anda bunu yapıyorum ve daha iyi alternatifler arıyorum. – Pacerier

+0

Aradığınızı "daha iyi" tanımından emin değilim. JavaScript aracılığıyla bir sınıfı dinamik olarak tetiklemek, uygun bir sınıf kullanmamalı ve bir sahte sınıf kullanmamalıdır. ': Hover' için tüm amaç, yalnızca bir kullanıcı bir öğenin üzerine geldiğinde kullanılır. Bu açıkça Element.classList (https://developer.mozilla.org/en-US/docs/Web/API/Element/classList) koleksiyonu gibi JavaScript yöntemlerinin var olmasının nedeni budur. – Scottie

+1

Ayrıca, vay. Bu, üzerinde çalıştığın uzun vadeli bir projenin cehennemi! ;) – Scottie

İlgili konular