Я пытаюсь запретить браузеру использовать :hover
эффект CSS через JavaScript.
Я установить a
и a:hover
стили в моем CSS, потому что я хочу , эффект парения, если JS не доступен. Но если JS есть в наличии, я хочу , чтобы переписать мою CSS эффект при наведении с гладкой один (используя цвет JQuery плагин, например.)
Я пробовал это:
$("ul#mainFilter a").hover(
function(e){ e.preventDefault(); ...do my stuff... },
function(e){ e.preventDefault(); ...do my stuff... });
Тоже пробовал return false;
, но не работает.
Вот пример моей проблемы: http://jsfiddle.net/4rEzz/ . Ссылка должна просто исчезнуть, но не стать серой.
Как упоминал fudgey, обходным путем было бы сбросить стили наведения с помощью, .css()
но мне пришлось бы перезаписать каждое отдельное свойство, указанное в CSS (см. Здесь: http://jsfiddle.net/raPeX/1/ ). Я ищу универсальное решение.
Кто-нибудь знает как это сделать?
PS: Я не хочу перезаписывать каждый стиль, который я установил для наведения.
источник
<noscript>
решение. Вы просто вставляете<link>
теги в свой<noscript>
, а не<style>
теги. Мое решение позволяет хранить все в одном файле таблицы стилей, а не в нескольких файлах.Используйте второй класс, которому назначен только наведение:
HTML
CSS
Теперь вы можете использовать Jquery для удаления класса, например, если элемент был нажат:
JQUERY
Надеюсь, этот ответ будет вам полезен.
источник
Вы можете управлять таблицами стилей и правилами самих таблиц стилей с помощью javascript.
Сделав атрибуты! Important и сделав это самым последним определением CSS, следует переопределить любое предыдущее определение, если только одно не является более конкретным. В этом случае вам, возможно, придется вставить больше правил.
источник
<link>
тег таблицы стилей noscript внутри<noscript>
элемента? Это сработает, правда?Error: The operation is insecure.
Это похоже на ответ aSeptik, но как насчет этого подхода? Оберните CSS-код, который вы хотите отключить с помощью JavaScript, в
<noscript>
тегах. Таким образом, если javaScript отключен,:hover
будет использоваться CSS , иначе будет использоваться эффект JavaScript.Пример:
источник
Я использовал
not()
оператор CSS иaddClass()
функцию jQuery . Вот пример, когда вы нажимаете на элемент списка, он больше не зависает:Например:
HTML
CSS
jQuery
источник
Я бы использовал CSS, чтобы событие: hover не меняло внешний вид ссылки.
Этот простой CSS означает, что ссылки всегда будут черными без подчеркивания. Я не могу сказать из вопроса, является ли изменение внешнего вида единственным, что вы хотите контролировать.
источник
Я бы рекомендовал заменить все
:hover
свойства на,:active
когда вы обнаружите, что устройство поддерживает сенсорный ввод . Просто вызовите эту функцию, когда вы сделаете это какtouch()
.источник
Попробуйте просто установить цвет ссылки:
Изменить: или еще лучше, используйте CSS, как предложил Кристофер
источник
a
вместо этого,ul#mainFilter a
если это то, что вы имеете в виду, или вы говорите, что каждая ссылка на странице имеет другой цвет?a.jsOverride:hover
этого, переопределяющее все характеристики css, поэтому js просто нужно будет добавить этотjsOverride
класс ко всем ссылкам при загрузке страницы ...На самом деле, другим способом решения этой проблемы может быть перезапись CSS с помощью
insertRule
.Это дает возможность вставлять правила CSS в существующую / новую таблицу стилей. В моем конкретном примере это будет выглядеть так:
Демо с моим 4-летним оригинальным примером: http://jsfiddle.net/raPeX/21/
источник