Z różnych powodów muszę umieścić (głównie) przezroczystość <div>
na jakimś tekście. Oznacza to jednak, że tekstu nie można kliknąć (np. W celu kliknięcia linków lub wybrania go). Czy można po prostu uczynić ten element div „niewidocznym” dla kliknięć i innych zdarzeń myszy?
Na przykład element overlay
div obejmuje tekst, ale chciałbym móc kliknąć / zaznaczyć tekst za pomocą elementu overlay
div:
<div id="container">
<p>Some text</p>
<div id="overlay" style="position: absolute; top: 0;
left: 0; width: 100%; height:100%">
... some content ...
</div>
</div>
Odpowiedzi:
Można to zrobić za pomocą CSS
pointer-events
. Ta właściwość jest obsługiwana w przeglądarkach Firefox 3.6+, Chrome 2+, IE 11+ i Safari 4+. Niestety nie mam wiedzy na temat obejścia tego problemu w różnych przeglądarkach.źródło
pointer-events: visible
wygląda na to, że zrobi dokładnie to , czego chcę. Dzięki!Można to zrobić, ponownie uruchamiając wydarzenie po tymczasowym ukryciu nakładki.
Zobacz pierwszą odpowiedź na to pytanie: „Nakładka” HTML, która umożliwia kliknięcie elementów znajdujących się za nią
źródło
Możesz to zrobić, ukrywając nakładkę w następujący sposób:
źródło
Użyj tego jQuery
zamień „div” na identyfikator lub element
źródło
Alternatywą dla wyłączenia wszystkich zdarzeń (lub laski) w div jest unbind () wszystkie zdarzenia, które są domyślnie powiązane z tagami
lub
źródło
jquery
teraz używaoff()
na rzeczunbind()
i usuwa tylko programy obsługi, nie zapobiega przechwytywaniu kliknięcia przez element div.