2012-06-28 15 views
8

Występuje problem podczas ustawiania fokusu na element za pomocą jquery. To najwyraźniej nie powoduje uruchomienia właściwości focus css na elemencie.Ustawienie jQuery nie powoduje aktywacji css

Na przykład w moim css mam:

div.item1:focus { border:2px solid red; } 

w moim jQuery mam:

$("div.item1").focus(); 

Ostrość jest ustawiona, ale nie ma czerwony granica zastosowana do elementu.

Odpowiedz

8

div elementy nie używać selektora :focus .. zobacz the CSS2 spec

: focus pseudo-klasa ma zastosowanie, gdy element ma fokus (przyjmuje zdarzenia klawiatury lub innych form wprowadzania tekstu).

Można to zrobić:

.hoverclass { border:2px solid red; } 

$("div.item").hover(function() { 
    $(this).addClass('hoverclass') 
},function() { 
    $(this).removeClass('hoverclass') 
}); 

wykorzystuje ten .hover(), .addClass() i .removeClass()

3

focus() jest użyteczny tylko z elementów formularzy i łącza i nie będzie działać, jeśli starają się używać go na inny rodzaje elementów.

Zobacz jQuery doc for focus() uzyskać więcej informacji,

+2

W ostatnich wersji przeglądarek, zdarzenie może zostać rozszerzony na wszystkie rodzaje elementów jawnie ustawienie właściwości tabindex elementu. - z linku jQuery docs powyżej – sabithpocker

+0

Wydaje się być trochę szkicowy do użycia, ponieważ nie ma definicji co to jest "ostatnia przeglądarka", ale można to zrobić tak samo oczywiście. Inne rozwiązania są prawdopodobnie lepsze. –

+0

Właśnie znalazłem pracę z ppk na ten temat, on zawarł "elementy z tabindexem" dla swojego wyszukiwania wygląda na – sabithpocker

2

Od the manual:

Impreza nacisk zostanie wysłana do elementu, gdy zyskuje ostrość. To zdarzenie jest domyślnie stosowane do ograniczonego zestawu elementów, takich jak elementy (<input>, <select> itd.) I łączy (<a href>). W najnowszych wersjach przeglądarki zdarzenie można rozszerzyć, aby uwzględnić wszystkie typy elementów , jawnie ustawiając właściwość tabindex elementu. Element może uzyskać fokus za pomocą poleceń na klawiaturze, takich jak klawisz Tab lub za pomocą kliknięcia myszą elementu.

Zobacz tę odpowiedź dla przykładu: https://stackoverflow.com/a/5966034/1013082

0

Trzeba to zrobić:

$("div.item1").focus(function(){ 
     $("div.item1").css("border","2px solid red"); 
     }); 
+1

jak o konturze zamiast obramowania? – sabithpocker

0

idź do jQuery ostrości() strony, aby zobaczyć:

Impreza ostrości jest wysyłany do elementu, gdy zyskuje ostrość. To zdarzenie jest domyślnie stosowane do ograniczonego zestawu elementów, takich jak elementy (<input>, <select> itd.) I łączy (<a href>). W najnowszych wersjach przeglądarki zdarzenie można rozszerzyć, aby uwzględnić wszystkie typy elementów , jawnie ustawiając właściwość tabindex elementu. Element może uzyskać fokus za pomocą poleceń na klawiaturze, takich jak klawisz Tab lub za pomocą kliknięcia myszą elementu.

idź do badania PPK dnia naciskiem na przeglądarkach tutaj

PPK focus Event Browser compatibility

Wygląda jak wszystkie przeglądarki przejść test tabindex.

Powiązane problemy