Я предполагал, что если я отключу div, все содержимое тоже будет отключено.
Тем не менее, содержимое отображается серым цветом, но я все еще могу взаимодействовать с ним.
Есть ли способ сделать это? (отключите div и отключите также весь контент)
javascript
jquery
html
хуан
источник
источник
Используйте фреймворк, такой как JQuery, для таких вещей:
Отключение и включение элементов ввода в блоке Div Использование jQuery должно помочь вам!
Начиная с jQuery 1.6, вы должны использовать
.prop
вместо.attr
отключения.источник
Я просто хотел упомянуть этот метод расширения для включения и отключения элементов . Я думаю, что это намного более чистый способ, чем непосредственное добавление и удаление атрибутов.
Тогда вы просто делаете:
источник
Вот краткий комментарий для людей, которым нужен не div, а просто блок-элемент. В HTML5
<fieldset disabled="disabled"></fieldset>
получил отключенный атрибут. Каждый элемент формы в отключенном наборе полей отключен.источник
Атрибут disabled не является частью спецификации W3C для элементов DIV , только для элементов формы .
Подход jQuery, предложенный Мартином, - единственный надежный способ добиться этого.
источник
похоже на решение Cletu, но я получил ошибку при использовании этого решения, это обходной путь:
отлично работает на меня
источник
Вы можете использовать этот простой оператор CSS для отключения событий
источник
Проверенные браузеры: IE 9, Chrome, Firefox и jquery-1.7.1.min.js
источник
Один из способов добиться этого - добавить неработающую опору всем детям в div. Вы можете достичь этого очень легко:
$("#myDiv")
находит элемент div,.find("*")
получает все дочерние узлы на всех уровнях и.prop('disabled', true)
отключает каждый из них.Таким образом, все содержимое отключено, и вы не можете щелкать их, вкладывать их, прокручивать их и т. Д. Кроме того, вам не нужно добавлять классы CSS.
источник
Элементы управления вводом HTML можно отключить, используя атрибут «disabled», как вы знаете. Когда атрибут «отключен» для элемента управления вводом установлен, обработчики событий, связанные с таким элементом управления, не вызываются.
Вы должны смоделировать описанное выше поведение для элементов HTML, которые не поддерживают атрибут «disabled», например, div, если хотите.
Если у вас есть div, и вы хотите поддерживать click или ключевое событие для этого div, то вам нужно сделать две вещи: 1) Когда вы хотите отключить div, установите его отключенный атрибут как обычно (просто для соблюдения соглашение) 2) В обработчиках кликов и / или клавиш вашего div'а проверьте, установлен ли атрибут div на div. Если это так, просто проигнорируйте событие нажатия или нажатия клавиши (например, просто немедленно вернитесь). Если неактивный атрибут не задан, тогда делайте логику вашего клика и / или ключевого события.
Вышеуказанные шаги также не зависят от браузера.
источник
Оберните
div
внутриfieldset
тега:источник
Я думал, что я сделаю пару записок.
источник
Это для искателей,
Лучшее, что я сделал,
источник
Как уже упоминалось в комментариях, вы все еще можете получить доступ к элементу, перемещаясь между элементами с помощью клавиши табуляции. поэтому я рекомендую это:
источник
Если вы хотите сохранить семантику инвалидов следующим образом
Вы можете добавить следующий CSS
выгода здесь в том, что вы не работаете с классами в div, с которыми хотите работать
источник
Я бы использовал улучшенную версию функции Cletus:
Который хранит исходное свойство элемента «disabled».
источник
Как отключить содержимое DIV
Одно
pointer-events
только свойство CSS не отключает прокрутку дочерних элементов, и оно не поддерживается IE10 и ниже для элементов DIV (только для SVG). http://caniuse.com/#feat=pointer-eventsЧтобы отключить содержимое DIV во всех браузерах.
Javascript:
Css:
Чтобы отключить содержимое DIV во всех браузерах, кроме IE10 и ниже.
Javascript:
Css:
источник
Ниже приведено более полное решение для маскировки div, позволяющее
Также включены hourglassOn и hourglassOff, которые можно использовать отдельно
С этим вы можете сделать, например:
смотри jsfiddle
источник
источник
Или просто используйте CSS и «отключенный» класс.
Примечание: не используйте отключенный атрибут.
Не нужно связываться с JQuery вкл / выкл.
Это намного проще и работает кросс-браузерно:
Затем вы можете включить и выключить его при инициализации вашей страницы или переключении кнопки
источник
Другой способ, в jQuery, состоит в том, чтобы получить внутреннюю высоту, внутреннюю ширину и расположение содержащего DIV и просто наложить другой DIV, прозрачный, поверх того же размера. Это будет работать на всех элементах внутри этого контейнера, а не только на входах.
Помните, что с отключенным JS вы все равно сможете использовать входы / контент DIVs. То же самое относится и к ответам выше.
источник
источник
Это решение css only / noscript добавляет оверлей над набором полей (или div или любым другим элементом), предотвращая взаимодействие:
Если вы хотите невидимое, то есть прозрачное наложение, установите фон, например, rgba (128,128,128,0), так как он не будет работать без фона. Выше работает для IE9 +. Следующий гораздо более простой CSS будет работать на IE11 +
Хром
источник
Если вы просто пытаетесь остановить людей, щелкающих мышью, и не беспокоитесь о безопасности - я нашел абсолютный div с z-индексом 99999, что-то вроде этого. Вы не можете щелкнуть или получить доступ к любому контенту, потому что над ним расположен div. Может быть немного проще и это решение только для CSS, пока вам не нужно его удалить.
источник
Существуют настраиваемые библиотеки JavaScript, которые принимают строку html или элемент dom и удаляют нежелательные теги и атрибуты. Они известны как дезинфицирующие средства HTML . Например:
Например, в DOMPurify
источник
РЕДАКТИРОВАТЬ: ниже я использовал
.on()
метод, вместо этого используйте.bind()
методчтобы удалить настройки, вы можете использовать
.unbind()
метод. Принимая во внимание, что.off()
метод не работает, как ожидалось.После исследования сотен решений! узнав о событиях указателя, ниже я сделал то, что сделал.
Как отметил @Kokodoko в своем решении, подходящем для всех браузеров, кроме IE.
pointer-events
работать в IE11, а не в более низких версиях. Я также заметил, что в IE11 события указателя не работают с дочерними элементами. И, следовательно, если у нас есть что-то вроде нижегде span - дочерний элемент , настройка не
pointer-events: none
будет работатьЧтобы преодолеть эту проблему, я написал функцию, которая могла бы действовать как указатель-событие для IE и будет работать в более низких версиях.
В файле JS
В файле CSS
В HTML
Это имитирует
pointer-events
сценарий, гдеpointer-events
не работает и когда вышеупомянутое условие дочерних элементов происходит.JS Fiddle для того же
источник
посмотри на мой селектор
fieldsetUserInfo
в DIV содержит все входы , которые я хочу , чтобы включить или отключенынадеюсь, это поможет вам
источник