Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Klik w inne miejsce niż button
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Matrix12
Witam,

mam taki problem. Skorzystałem z pluginu JQuery na selecty. Po kliknięciu w kontrolkę rozwija się select da się w nim szukać itd(Skrypt dodaje klase i wtedy taki select się wyświetla). ale da się go tylko wyłączyć po kliknięciu anuluj. Chce aby po kliknięciu w dowolnym miejscu na stronie(po za tym selectem) zamykały się wszystkie otwartę selecty. Zrobiłem kod w JQuery który miał usuwać tą klasę. Problem w tym , ze jak nawet kliknę w button to on ja automatycznie usuwa.. Macie jakies pomysły jak to obejść?
pastan
Jaki dokładnie plugin wykorzystałeś? I pokaż kod to będzie dużo łatwiej pomóc.
Comandeer
Albo pobawić się z event.stopPropagation, albo obsługiwać całość selecta przy pomocy event delegation podczepionego pod document.body
Matrix12
Plugin to SumoSelect. A z event.stopPropagation wystarczy zrobić document click i to wstawić event.stopPropagation i linijkę ktora usuwa klasę .open?
Comandeer
Nie, event.stopPropagation należy przypiąć do kliku buttona
Matrix12
Dało radę smile.gif
Comandeer
event.stopPropagation zatrzymuje bąbelkowanie eventów wyżej w drzewku DOM: http://www.quirksmode.org/js/events_order.htmlhttp://jsfiddle.net/Comandeer/3fmxyyLm/
trueblue
Kod
$(document).on('click',function(e){
    var sselect=$('.SumoSelect');
    if(!sselect.is(e.target)&&sselect.has(e.target).length==0){
        //tu wyłącz wszystkie selecty
    }
});
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.