2010-09-03 14 views
5

Oto, co chcę zrobić. Chcę wyzwalać zdarzenie za każdym razem, gdy zmienia się wybrany element. Mam wybór wieloliniowy i kiedy dokonuję zmian (klikając elementy), nie zmienia się, dopóki pole wyboru nie zostanie skupione. Próbuję wymuszać rozmycie za każdym razem, gdy kliknę pole wyboru. W ten sposób, jeśli się zmieni, wywoła to zmienione zdarzenie. Jeśli to się nie zmieni, nic się nie wydarzy.Jak wymusić zdarzenie blur w JavaScript?

Jak to zrobić? Czy podchodzę do tego w odpowiedni sposób? Odpowiedzi Jquery są również w porządku.

+1

Jeśli to zrobisz, będziesz musiał wkurzyć tych, którzy używają klawiatury, aby poruszać się po opcjach listy wyboru. –

+1

@Roatin, to zależy. Jeśli zmienia klasę z etykietą, nie ma wielkiego, jeśli rzuca alert ...;) – Marc

Odpowiedz

1

Ok, oto co się dzieje. Wprowadziłem wersję -vsdoc JQuery zamiast rzeczywistej biblioteki JQuery. Naprawia to również niektóre problemy, które miałem z niektórymi wtyczkami, takimi jak blockUI.

+0

Aby wyjaśnić, NIE chcesz uwzględniać -vsdoc. To powinno być używane tylko dla intellisense. –

1

Możesz dołączyć procedurę obsługi online do wyboru i poszczególnych opcji. zasadniczo onclick="this.blur();". Zawsze uważałem, że kliknięcia zdarzeń na elementach <select> są uciążliwe, ponieważ nic nie dzieje się w takim miejscu, w jakim tego oczekujesz.

3

jQuery zrobić:

$('#mySelectBox').change(function() { 
    //do things here 
}); 

Zgodnie z dokumentacją w http://api.jquery.com/change/, zdarzenie jest uruchamiany natychmiast, gdy użytkownik dokonuje wyboru.

Sprawdź to demo, aby sprawdzić, czy to działa: http://jsfiddle.net/AHM8j/

+1

Tak. Jest to wydarzenie, o którym powinien nasłuchiwać OP. –

+0

To nie może się zdarzyć w IE. IE jest notorycznie złe w przypadku zdarzenia 'change'. http://stackoverflow.com/questions/1637503/jquery-change-event-on-select-not-firing-in-ie –

+0

Przedstawione przeze mnie demo wydaje mi się działać w IE 6-8. Dodatkowo, z dostarczonej dokumentacji: "Od wersji jQuery 1.4 zdarzenie zmiany teraz się rozwija i działa identycznie jak wszystkie inne przeglądarki w Internet Explorerze." – Ender

Powiązane problemy