2013-03-06 2 views
0

Я пытаюсь настроить мой CSS динамически. Вот мой CSS:Изменение свойств CSS с помощью Javascript/jquery

.red_button { 
    background:url(record.png); 
    padding: 19px 251px; 
    cursor: pointer; 
    background-repeat: no-repeat; 
} 

.red_button:hover { 
    background:url(record-hover.png); 
    cursor: pointer; 
    background-repeat: no-repeat; 
} 

Что после того, как он щелкнул получает изменено на что-то вроде этого:

function recordStarted() { 
    started = true; 
    $("#red_button").css("background","url(stop.png)"); 
    $("#red_button").css("background-repeat","no-repeat"); 
} 

Но если я пытаюсь изменить: парить атрибут с чем-то вроде $("#red_button:hover").css("background","url(stop.png)"); он просто меняет фон (а не фон hover). Так что лучший способ сделать это? Я пробовал несколько разных вещей, например, с jQuery, но не смог заставить ничего работать.

+0

пожалуйста, добавьте скрипку, так что мы можем undstnd что точная проблема – supersaiyan

+1

Такой подход представляется неясным, - это лучше, чтобы создать еще один класс CSS, а не изменять стили элементов в JS – k102

+1

У вас уже есть '.red_button : hover', почему пытается сбросить его в JS? – dfsq

ответ

0

попробовать это:

$("#red_button").mouseover(function() { 
    this.css("background","url(stop.png)"); 
}); 
+0

Вам нужно '$ (this)' потому что 'this' не является объектом jQuery. – jfriend00

1

Пожалуйста, не делайте этого, используйте класс CSS, если абсолютно не требуется. Это позволит отделить все ваши стили в CSS, где он принадлежит, и очистить ваш JS одновременно.

CSS

#red_button.clicked { 
    /* Applied when the button is clicked and NOT hovered */ 
} 

#red_button.clicked:hover { 
    /* Applied when the button is clicked and hovered */ 
    background: url(stop.png); 
    background-repeat: no-repeat; 
} 

JS

function recordStarted() { 
    started = true; 
    $("#red_button").addClass("clicked"); 
} 

Я также заметить, что вы имеете в виду .red_button класса в CSS, но #red_button ID в JS, вы, вероятно, значит для них обоих быть идентификаторами?

EDIT: Изменить правило, применяемое при нажатии и зависании.

Вот простой пример из стилей в действии: http://jsfiddle.net/BMmsD/

0

Вы делаете ошибку опечатки я думаю, как вы используете "." в CSS и "#" в JQuery.

еще использовать updated code

$(document).ready(function() { 
    $(".red_button").click(function() { 
     $(".red_button").css("background","record-hover.png"); 
    }); 
}); 

Я надеюсь, что я достаточно ясно?

+0

Итак, если я сделаю их одинаковыми, я могу использовать элемент: hover в javascript? – Christian

+0

Вам нужно навести курсор от javascript ?? его простой поворот, который вы хотите, я думаю, что ... используйте только css – supersaiyan

+0

Нет, но у меня уже есть: hover, настроенный в css. Я меняю фоновое изображение одним кликом, но с javascript, и мне нужно изменить элемент: hover, чтобы он соответствовал ему. – Christian

Смежные вопросы