Живая функция JQuery и добавить / удалить класс
Я использую jquery 1.5, и у меня возникла проблема с функцией добавления и удаления класса. Ниже мой код.
Я создаю навигацию с нормальным, наведением и активным состоянием. Активное состояние я хочу добавить и удалить класс.
$(".class").hover(function(){
$(this).css("background-color", "#666).css("color", "yellow");
), function(){
$(this).css("background-img", url(image).css("color","#fff");
).live('click', function(){
if($("ul.me li").hasClass("current")){
$("ul.me li").removeClass("current");
$(this).addClass("current");
}
});
<ul class="me">
<li class="current"> item1 </li>
<li> item1 </li>
<li> item1 </li>
</ul>
Я правильно связал это?
4 ответа
Вам, вероятно, нужно использовать $("ul.me li").removeClass("current")
вместо $("ul#me li").removeClass("current")
$("selector").live('click', function(){
if($("ul.me li").hasClass("current")){
$("ul.me li").removeClass("current");
$(this).addClass("current");
}
});
Вам не хватает селектора:-
$("ul.me li").live('click', function(){
if($("ul.me li").hasClass("current")){
$("ul#me li").removeClass("current");
$(this).addClass("current");
}
});
Вы слишком усложняете вещи в своем сценарии. Вам необходимо прочитать документацию для.css. Вы не можете ссылаться на элемент $(".class")
, Если вы хотите сослаться на тип элемента, используйте только имя без .
или же #
лайк $("ul")
, Если вы хотите сослаться на использование класса $(".me")
а также $("#idName")
для идентификаторов. Одиночная команда css может принимать массив значений css для изменения. Как я уже говорил ранее, пожалуйста, ознакомьтесь с документацией CSS. jQuery 1.6 был настолько близок, насколько я смог получить в jsfiddle. Вот ссылка на скрипку. Пожалуйста, обратитесь к сценарию и измените значения CSS в соответствии с вашими требованиями.
Примечание. Если вы добавляете класс в li и удаляете его при наведении, добавьте стили к классу в css, а не в js. Это дешевле.
Просто.Live не имеет смысла. Вам нужно установить.live для объекта jquery, например $('selector')