Я новичок в JQuery. В моем приложении у меня есть следующее:
$("#displayPanel div").live("click", function(){
$(this).css({'background-color' : 'pink', 'font-weight' : 'bolder'});
});
Когда я нажимаю на Div, цвет этого Div меняется. В рамках этой функции Click у меня есть некоторые функции, которые нужно сделать. После всего этого я хочу удалить примененный Css из Div. Как я мог сделать это в JQuery?
Ответы:
Поместите свои свойства CSS в класс, затем сделайте что-то вроде этого:
Тогда где ваши «другие функции» сделать что-то вроде:
источник
<div style="xxx"/>
все еще CSS ... это не очень хороший способ сделать это, но он работает.addClass
илиremoveClass
илиremoveAttr('style')
как в ответе @ ToRrEs.Вы можете удалить определенный CSS, который находится на элементе следующим образом:
Хотя я согласен с Каримом, что вы, вероятно, должны использовать классы CSS.
источник
Вы можете использовать метод removeAttr, если хотите удалить весь встроенный стиль, который вы добавили вручную с помощью javascript. Лучше использовать классы CSS, но вы никогда не знаете.
источник
.css('style-name', 'style-value')
функция jQuery добавляет встроенные стили к элементу - и необходима для обновления стилей на лету. Сценарий перетащить / падение может изменитьtop
иleft
стили абсолютно позиционируемый элемент - экземпляр , где использование классов нецелесообразно.Вы можете удалить встроенные свойства следующим образом:
Например:
Это по существу упомянуто выше, и это определенно делает свое дело.
Кстати, это полезно в тех случаях, когда вам нужно очистить состояние после анимации. Конечно, я мог бы написать с полдюжины классов, чтобы справиться с этим, или я мог бы использовать свой базовый класс и #id сделать некоторую математику и очистить встроенный стиль, который применяет анимация.
источник
ИЛИ
источник
Как примечание, в зависимости от свойства вы можете установить его на авто.
источник
Установите значение по умолчанию, например:
$ (this) .css ("высота", "авто");
или в случае других функций CSS
$ (this) .css ("высота", "наследовать");
источник
На самом деле лучший способ, который я нашел, это сделать, когда приходится выполнять сложные стили на основе jquery, например, если у вас есть модал, который нужно отобразить, но он должен рассчитать смещения страниц, чтобы получить правильные параметры, в которые нужно будет войти функция jQuery ("x"). css ({}).
Итак, здесь настройка стилей, вывод переменных, которые были рассчитаны на основе различных факторов.
Для того, чтобы очистить эти стили. вместо того, чтобы устанавливать что-то вроде
Простой способ будет
Когда jquery манипулирует элементами в dom, стили записываются в элемент в атрибуте "style", как если бы вы писали стили inline. Все, что вам нужно сделать, это очистить этот атрибут, и элемент должен восстановить свои первоначальные стили
Надеюсь это поможет
источник
У меня тоже такая же проблема, просто удалите значение
источник
Если вы не хотите использовать классы (что вам действительно нужно), единственный способ выполнить то, что вы хотите, - это сначала сохранить измененные стили:
источник
Я использовал второе решение user147767
Однако здесь есть опечатка. Так должно быть
не <= 0
Я также изменил это условие для:
иногда мы добавляем свойство css поверх jQuery, и оно добавляется по-разному для разных браузеров (т. е. свойство border будет добавлено как «border» для Firefox, «border-top», «border-bottom» и т. д. для IE). ).
источник
Перед добавлением класса вы должны проверить, есть ли у него класс с методом .hasClass ()
Для вашего конкретного вопроса. Вы должны положить свои вещи в Cascading Stylesheet. Лучше всего разделять дизайн и функциональность.
поэтому предлагаемое решение добавления и удаления имен классов является наилучшей практикой.
однако, когда вы манипулируете элементами, вы не контролируете, как они отображаются. removeAttr ('style') - ЛУЧШИЙ способ удалить все встроенные стили.
источник
Я изменил user147767 игрового решение немного , чтобы сделать его можно использовать
strings
,arrays
и вobjects
качестве входных данных:http://jsfiddle.net/ARTsinn/88mJF/
источник