Иногда я использую якоря, стилизованные под кнопки, а иногда я просто использую кнопки. Я хочу отключить определенные клики, чтобы:
- Они выглядят инвалидами
- Они перестают быть нажатыми
Как я могу это сделать?
jquery
html
css
twitter-bootstrap
biofractal
источник
источник
role="button"
для ссылок, но это, похоже, не влияет на эту проблему. getbootstrap.com/css/#buttonsa.btn[disabled]
выглядят отключенными еще остаются интерактивными ошибка в Bootstrap ИМО. Атрибут[disabled]
должен отображаться отключенным только дляbutton
иinput
.Ответы:
Кнопки
Кнопки просто отключить, так как
disabled
это свойство кнопки, которое обрабатывается браузером:Чтобы отключить их с помощью пользовательской функции jQuery, вы просто должны использовать
fn.extend()
:JSFiddle отключена кнопка и ввод демо .
В противном случае вы бы использовали
prop()
метод jQuery :Якорные Теги
Стоит отметить, что
disabled
это недействительное свойство для тегов привязки. По этой причине Bootstrap использует следующий стиль для своих.btn
элементов:Обратите внимание, как
[disabled]
свойство нацелено, а также.disabled
класс..disabled
Класс является то , что нужно , чтобы сделать якорь тег появится отключен.Конечно, это не помешает функционированию ссылок при нажатии. Приведенная выше ссылка приведет нас к http://example.com . Чтобы предотвратить это, мы можем добавить простой кусок кода jQuery для целевых тегов привязки с
disabled
классом для вызоваevent.preventDefault()
:Мы можем переключить
disabled
класс с помощьюtoggleClass()
:JSFiddle отключена ссылка демо .
комбинированный
Затем мы можем расширить предыдущую функцию отключения, сделанную выше, чтобы проверить тип элемента, который мы пытаемся отключить с помощью
is()
. Таким образом , мы можем ,toggleClass()
если это не являетсяinput
илиbutton
элемент, или переключить наdisabled
имущество , если оно:Полная комбинированная демонстрация JSFiddle .
Стоит также отметить, что вышеуказанная функция также будет работать на всех типах ввода.
источник
return false if $(@).prop('disabled')
в пользовательских обработчиках кликов? Без этой строки эти обработчики выполняются независимо.disabled
, не является допустимым свойством тега привязки, поэтому его не следует использовать. Событие щелчка Я дал основан на.disabled
классе, но то , что вы можете использовать этоhasClass('disabled')
- если это правда,preventDefault
.disabled
свойство на якоре. Это динамический объект, так что я могу просто установить его и использовать, как будто я расширяю набор функций якоря? Я обновил свой ответ ниже, чтобы показать это. Что вы думаете? Это зло? Кроме того , вы должны.off()
вpreventDefault
случае щелчка при повторном включении ссылки?disabled
свойство, вы можете использоватьdata-*
атрибуты . Поскольку Bootstrap уже применяет те жеdisabled
стили свойств,class="disabled"
вы можете положиться на этот класс.preventDefault
ко всем событиям щелчка якоря, мне потребуется отсоединить их, когда ссылка будет снова включена. Или я что-то недопонимаю?Я не могу придумать более простой способ! ;-)
Использование якорных тегов (ссылок):
Чтобы включить тег привязки:
Чтобы отключить тег Anchor:
источник
Предположим, у вас есть текстовое поле и кнопка отправки,
Отключение:
Чтобы отключить любую кнопку, например, кнопку отправки, вам просто нужно добавить отключенный атрибут как,
После выполнения вышеуказанной строки ваш HTML-тег кнопки отправки будет выглядеть следующим образом:
Обратите внимание, что атрибут «disabled» добавлен .
Включение:
Для включения кнопки, например, когда у вас есть текст в текстовом поле. Вам нужно будет удалить атрибут отключения, чтобы включить кнопку как,
Теперь приведенный выше код удалит атрибут «disabled».
источник
Я знаю, что опаздываю на вечеринку, но специально отвечу на два вопроса:
«Я просто хочу отключить определенные клики, чтобы:
Как трудно это может быть?
Они перестают нажимать
1. Для кнопок нравится
<button>
или<input type="button">
добавить атрибут:disabled
.2. Для ссылок, ЛЮБОЙ ссылки ... фактически, любого HTML-элемента, вы можете использовать события указателя CSS3 .
Поддержка браузером событий указателя удивительна сегодняшним уровнем техники (5/12/14). Но мы обычно должны поддерживать устаревшие браузеры в области IE, поэтому IE10 и ниже НЕ поддерживают события указателя: http://caniuse.com/pointer-events . Таким образом, использование одного из решений JavaScript, упомянутых здесь другими, может быть подходом для устаревших браузеров.
Больше информации о событиях указателя:
Они выглядят инвалидами
Очевидно, это ответ CSS, так что:
1. Для кнопок типа
<button>
или<input type="button">
используйте[attribute]
селектор:-
Вот основная демонстрация с вещами, которые я упомянул здесь: http://jsfiddle.net/bXm5B/4/
Надеюсь это поможет.
источник
Если, как и я, вы просто хотите отключить кнопку, не пропустите простой ответ, тонко скрытый в этой длинной теме:
источник
@James Donnelly предоставил исчерпывающий ответ, который основан на расширении jQuery новой функцией. Это отличная идея, поэтому я собираюсь адаптировать его код так, чтобы он работал так, как мне нужно.
Расширение jQuery
Применение
Код будет обрабатывать отдельный элемент или список элементов.
Кнопки и входы поддерживают
disabled
свойство и, если установленоtrue
, они будут выглядеть отключенными (благодаря начальной загрузке) и не будут срабатывать при нажатии.Якоря не поддерживают свойство disabled, поэтому вместо этого мы будем полагаться на
.disabled
класс, чтобы они выглядели отключенными (благодаря загрузке снова), и подключаем событие click по умолчанию, которое предотвращает щелчок, возвращая false (нет необходимостиpreventDefault
видеть здесь ) ,Примечание : вам не нужно отсоединять это событие при повторном включении якорей. Простое удаление
.disabled
класса делает свое дело.Конечно, это не поможет, если вы добавили в ссылку пользовательский обработчик кликов, что очень часто встречается при использовании bootstrap и jQuery. Поэтому, чтобы справиться с этим, мы собираемся использовать
isDisabled()
расширение для проверки.disabled
класса, например:Я надеюсь, что это помогает немного упростить вещи.
источник
Обратите внимание, что есть странная проблема, если вы используете JS-кнопки Bootstrap и состояние загрузки. Я не знаю, почему это происходит, но вот как это исправить.
Скажем, у вас есть кнопка, и вы устанавливаете ее в состояние загрузки:
Теперь вы хотите вывести его из состояния загрузки, но также отключить его (например, кнопка была кнопкой «Сохранить», состояние загрузки указывало на текущую проверку и проверку не удалась). Это выглядит как разумный Bootstrap JS:
К сожалению, это сбросит кнопку, но не отключит ее. Видимо,
button()
выполняет некоторую отложенную задачу. Так что вам также придется отложить отключение:Немного раздражает, но я часто использую этот шаблон.
источник
Отличный ответ и вклад от всех! Мне пришлось немного расширить эту функцию, чтобы включить отключение элементов select:
Кажется, работает на меня. Спасибо всем!
источник
Для такого поведения я всегда использую
button
виджет jQueryUI , я использую его для ссылок и кнопок.Определите тег в HTML:
Используйте jQuery для инициализации кнопок:
Используйте
button
методы виджета, чтобы отключить / включить их:Это позаботится о поведении кнопки и курсора, но если вам нужно углубиться и изменить стиль кнопки, когда она отключена, перезапишите следующие классы CSS в вашем файле стиля страницы CSS.
Но помните: эти CSS-классы (если они будут изменены) также изменят стиль и для других виджетов.
источник
Следующее сработало для меня очень хорошо:
источник
Это довольно поздний ответ, однако я наткнулся на этот вопрос, когда искал способ отключить кнопки Boostrap после нажатия на них и, возможно, добавить хороший эффект (например, спиннер). Я нашел отличную библиотеку, которая делает именно это:
http://msurguy.github.io/ladda-bootstrap/
Вы просто включаете необходимые css и js, добавляете некоторые свойства к своим кнопкам и включаете lada с помощью javascript ... Presto! У ваших кнопок новая жизнь (пожалуйста, проверьте демо, чтобы увидеть, как это красиво)!
источник
Это выше не работает, потому что иногда
скорректируйте свой код с помощью
источник
Я знаю, что мой ответ опоздал, но IMO, это самый простой способ переключить кнопку «включить» и кнопку «отключить»
источник
Предположим, у вас есть эти кнопки на странице, например:
Код JS:
источник
Скажем, у вас есть что-то вроде этого, которое в настоящее время включено.
Просто добавьте это:
и вы получите это, которое отключит кнопку
источник
disabled
свойство не является допустимым для якорных тегов.Если вы хотите отключить кликабельный, вы также можете добавить это в HTML
источник