Wprowadzam funkcję wyboru elementów w javascript (przy użyciu jQuery). pozycja jest li zawierająca trochę html.
użytkownik może kliknąć jeden element (zaznacza go), a następnie kliknąć inny element w Shift, aby zaznaczyć wszystkie elementy znajdujące się pomiędzy. to zasadniczo działa poprawnie, jednak kliknięcie z przesunięciem również wybiera (higtlights) tekst, który pojawia się wewnątrz elementów (podstawowa funkcjonalność przeglądarki dla kliknięć shift). czy jest jakiś sposób, aby to wyłączyć?wyłącza zaznaczanie tekstu, naciskając "shift"
Odpowiedz
Spróbuj combo JavaScript i css, aby uniemożliwić wybór w pierwszej kolejności:
$('li').attr('unselectable', 'on'); // IE
css (dla przeglądarek nie IE):
li {
user-select: none; /* CSS3 (little to no support) */
-ms-user-select: none; /* IE 10+ */
-moz-user-select: none; /* Gecko (Firefox) */
-webkit-user-select: none; /* Webkit (Safari, Chrome) */
}
Spróbuj tego po Shift + kliknięcie ...
document.getSelection().removeAllRanges();
Jeśli to nie jest wystarczająco skuteczne, konieczne może być również anulować onselectstart imprezę ...
window.onload = function() {
document.onselectstart = function() {
return false;
}
}
+1 za anulowanie wyboru. –
Mam taką aplikację. Trick jest, chciałem pozwolić na wybór, ale chciałem również kliknąć Ctrl-kliknięcie i Shift-kliknąć, aby wybrać elementy.
Co znalazłem było to, że wszyscy, ale IE pozwala na pokonanie tego poprzez anulowanie zdarzenia mouseDown, w IE, co działa najlepiej, aby tymczasowo wyłączyć onselectstart:
$("#id").mousedown(function (e) {
if (e.ctrlKey || e.shiftKey) {
// For non-IE browsers
e.preventDefault();
// For IE
if ($.browser.msie) {
this.onselectstart = function() { return false; };
var me = this; // capture in a closure
window.setTimeout(function() { me.onselectstart = null; }, 0);
}
}
});
To był sekret, którego szukałem. W przeglądarce Chrome pojawił się chwilowy błysk wyboru, a Safari musiała dodać także "document.getSelection(). RemoveAllRanges();" – prototype
Jeśli masz wyboru w swoich wierszach tabeli (przedmioty), możesz po prostu ustawić fokus na polu wyboru wiersza po dokonaniu wyboru. Koncentrując się na polu wyboru, należy pozbyć się wyboru przeglądarki. Możesz także skupić się na polu tekstowym lub innym elemencie formularza. Dla JQuery,
$('tr').bind('click', function(e) {
// If shift key was down when the row was clicked
if (e.shiftKey) {
// Make the row selected
$(this).parent().children().slice($(last).index(), $(this).index()+1).addClass('selected').find('input:checkbox').attr('checked', true);
// Now focus on the checkbox within the row
$('input:checkbox', $(this)).focus();
}
});
- 1. QWebview/webkit wyłącza zaznaczanie tekstu
- 2. Zaznaczanie tekstu Zbyt jasne podkreślanie
- 3. Wyłącz zaznaczanie tekstu w textarea
- 4. Blokuj zaznaczanie tekstu lub zaznaczanie wielu tekstów na raz.
- 5. Jak uniemożliwić zaznaczanie tekstu przy dwukrotnym kliknięciu?
- 6. Zaznaczanie tekstu w polu tekstowym UIAlertController
- 7. Programowe zaznaczanie tekstu częściowego w polu wejściowym
- 8. Zaznaczanie tekstu w kolumnie tabeli html
- 9. Jak wyłączyć zaznaczanie części tekstu w div?
- 10. QPainter :: rotate wyłącza wygładzanie narysowanego tekstu
- 11. Interfejs użytkownika Testowanie iOS, zaznaczanie tekstu wpisu bezpiecznego Tekst Pole
- 12. Zaznaczanie i wybieranie tekstu za pomocą przekleństw Python
- 13. Zaznaczanie tekstu wewnątrz nawiasów spoza nawiasu w Vim
- 14. Czy mogę symulować zaznaczanie tekstu za pomocą myszy w JavaScript?
- 15. Jak wyłączyć pozycjonowanie kursora i zaznaczanie tekstu w EditText? (Android)
- 16. Zapobieganie zaznaczaniu tabeli tekstu
- 17. Wykryj zamknięcie $ mdDialog, naciskając ESC
- 18. Umożliwia zaznaczanie tekstu w obszarze tekstowym w obrębie rodzica jQuery Sortowalny
- 19. Zaznaczanie komórek w CollectionView
- 20. emacs odpowiednik vima's shift-h i shift-l
- 21. Dlaczego kompilator nie może mieć konfliktu "shift/shift"?
- 22. JSF wywołanie metody fasoli z tekstu wejściowego, gdy naciskając klawisz ENTER
- 23. Shift + mouseover z jQuery
- 24. Javascript shift() mnshicsics() unshift()?
- 25. Shift Key w GWT?
- 26. Python Niepodpisana PRAWY SHIFT
- 27. Wybór tekstu z JLabel?
- 28. Sequel zaznaczanie zbyt wielu kolumn
- 29. JTree: Zaznaczanie wszystkich węzłów programowo
- 30. Ukryj iPad Keyboard naciskając klawisz Return
Należy zauważyć, że nie zaznaczone = "on" musi być również we wszystkich węzłach podrzędnych (np. Div, p). Nawet widget w checkboxie można klikać z wciśniętym klawiszem Shift. –
To nie odnosi się do części "podczas naciskania zmiany". Zobacz odpowiedź @Anthony Mills. – ahlexander