2011-10-02 9 views
8

Mam tabelę z wieloma kolumnami. Chcę, aby treść każdej kolumny była wybierana indywidualnie. Kiedy zaczynam wybierać pierwszą kolumnę, druga, trzecia ... są automatycznie wybierane. Gdy wybiorę jedną kolumnę, chcę, aby inne kolumny były niemożliwe do wybrania.Nie można wybierać kolumn w tabeli HTML

Próbowałem zastosować następujące klasy na elementach i działało dobrze w FF.Nie ma znaczenia, od czego zaczyna się wybór, jego nigdy nie można wybrać.

.unselectable { 
    user-select: none; /* CSS3 */ 
    -moz-user-select: none; 
    -khtml-user-select: none; 
} 

dla IE Próbowałem właściwość o nazwie unselectable="on" w programie Internet Explorer, nadal jest wybierana jeśli selekcja zaczyna zewnątrz. Chcę uniemożliwić wybór pewnych kolumn, nawet wybór rozpoczyna się od zewnątrz.

Próbowałem użyć onselectionstart i onmouseover, ale gdy wybór rozpoczyna się poza elementem, nie są one wyzwalane.

Czy mam jakąkolwiek nadzieję?

Z góry dziękuję.

+0

Jaki jest twój cel indywidualnego wyboru każdej kolumny? Stworzyłem tabelę z tekstem w środku i wybrałem tekst bez napotykania twojego problemu. Czy możesz podać więcej szczegółów na temat tego, dlaczego jest to problem? Czy możesz podać nam fragment lub cały kod, abyśmy mogli go przetestować? – b28c92e5ff1

+0

Twoje najlepsze ujęcie prawdopodobnie wybierze komórki tabeli za pomocą jquery (proste i czyste selektory) i ustaw odpowiednie klasy css, aby zmienić zachowanie. Zamiast tego możesz użyć atrybutu style, więc tych właściwości nie można nadpisać niestandardowymi plikami css użytkownika z przeglądarek. – Smamatti

Odpowiedz

1

Uważam, że na razie nie ma czystego rozwiązania CSS.

Może to zabrzmieć dziwnie, ale możesz sklonować zawartość kolumny, którą użytkownik chce wybrać w osobnej tabeli, która będzie positioned: absolutely nad oryginalną kolumną.

0

Może to pomóc w dodaniu TH z atrybutem SCOPE. Nie mogę powiedzieć, że to zadziała, ale robi to dla bardziej semantycznego stołu. CSS może przechwycić atrybut, więc rozwiązanie DOM nie może być aż tak daleko.

1

Zamiast wymyślania koła ... sprawdź http://www.datatables.net/

Jest to tabela JQuery plug-in, który będzie powali cię na kolana.

Wygląda na to, że już robi to, co chcesz zrobić i jest za darmo.

+0

Datatables są wspaniałe :) będą uprościć zadanie dla Ciebie @Gopal rzeczywiście –

+1

Nie rozwiązuje problemu, i wydaje się jak wtyczka. -1 –